如何解决熊猫参照一列以降序排列三个列表列
我有一个这样的熊猫数据框:
df =
userid item_id label score
1 [1,2,3] [0,1] [0.2,0.3,0.5]
... ... ...
item_id
, label
和score
是df大小相同的列表列(不限于大小3)。我想按降序对score
列进行排序,并且label
和item_id
也应参照score
列的新顺序进行排序。
预期产量
df =
userid. item_id. truth score
1 [3,1] [1,0] [0.5,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 Output
达到df_original
,那也很好。
解决方法
尝试sort_values
和groupby
再次转换为列表
(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()
)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。