我有一个这样的熊猫数据框:
df =
userid item_id label score
1 [1, 2, 3] [0, 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, 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 Output
from 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()
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句