2024-04-28 09:52:55 发布
网友
假设我有下面的数据框。我想把它改造成按“剩余天数”排序的方式。ID可以多次使用,并且所有报告编号都是唯一的。但我希望每个ID都出现一次,然后再使用已经使用过的ID
例如,AABBCC->;ABCABC或AABCCC->;ABCACC
我该如何扭转局面
这件事
cumcount应该有效
df.sort_values("Days Left") \ .assign(order=lambda x: x.groupby("ID").cumcount()) \ .sort_values(["order", "Days Left"]) \ .drop(columns="order")
我喜欢这个解决方案
ID=[171,171,182,182] Report=[11,12,13,14] DaysLeft=[5,9,1,2] df=pd.DataFrame({'id':ID,'report':Report,'daysleft':DaysLeft}) df=df.sort_values(by="daysleft",ascending=True)\ .assign(order=lambda x: x.groupby("id").cumcount())\ .sort_values(by=['order','daysleft']) output: id report daysleft order 2 182 13 1 0 0 171 11 5 0 3 182 14 2 1 1 171 12 9 1
cumcount应该有效
我喜欢这个解决方案
相关问题 更多 >
编程相关推荐