熊猫参照一列以降序排列三个列表列

Sumit sidana

我有一个这样的熊猫数据框:

df = 
    userid        item_id                   label             score
      1            [1, 2, 3]               [0, 0, 1]          [0.2, 0.3, 0.5]
      ...        ...                            ...
      

item_id labelscore是DF的相同大小列表列(不限于大小3)。我想score按降序进行排序label并且item_id还应该参考新的score顺序对进行排序

预期产量

 df =
     userid.     item_id.       truth       score
       1          [3, 2, 1]   [1, 0, 0]   [0.5, 0.3, 0.2]

熊猫有可能这样做吗?

我如何形成此数据框:

我最初有这个数据框:

  df_original =
       userid        item_id                   label             score
        1              1                         0                 0.2
        1              2                         0                 0.3
        1              3                         1                 0.5

我打了电话:

  df = df_original.groupby('user_id').agg(list)

如果有一种方法可以实现Expected Outputfrom df_original,那么也很好。

特里

尝试sort_valuesgroupby再次转换为列表

(df_original.sort_values(['userid', 'score'], ascending=[True,False])
            .groupby('userid').agg(list)
            .reset_index()
)

编辑

正如@ Ben.T警告的那样,可以使其更简单

(df_original.sort_values('score', ascending=False)
            .groupby('userid').agg(list)
            .reset_index()
)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何排列三个列表,使对应元素的和(如果大于)则首先出现?

升序排列三个浮点数

如何并排排列三个flex div

以降序排列对另一个列表的引用

CSS Flexbox:如何在一行中排列三个项目,但其中两个彼此下方?

Groupby并根据熊猫的另一列降序排列其一列

如何有效地在网页中并排排列三个图

熊猫根据条件比较两列并通过三个不同的推理获得另一列

在一列中更新三个元素的组合

MySQL:联接三个表并分组一列

根据另一列的三个条件设置一列的值

我如何仅使用`if ... else`语句以降序形式编写javascript三个数字?

如何将三个字符串列组合为在熊猫中具有Nan值的一列

Pandas 将一列中的最后三个字符替换为另一列

在熊猫数据框中,给定两个列表列,根据第二列中的值访问第一列中的值

如果三个文件的第一列匹配,则输出输出

Pandas 为 groupby 中的每一列获取三个最常见的值

用bash整理一列中的三个或更多连续项

Python Pandas:使用三个不同的值在数据框中创建一列

基于第三个列表筛选列表列表的最快方法?

基于一个键连接三个表,将数据放入同一列

不同的一列使用sybase返回选定的列并按日期降序排列

如何从 pyhton 中的 2 个相关列表列创建一列?

如何在熊猫中排列一列

随机排列熊猫数据框中的一列

熊猫:三个列出的列宽格式

比较三个熊猫列以确定预测

将一列添加到列表列表

熊猫:将一列列表汇总到一个列表中