首页 > 解决方案 > 转换数据框时遇到问题(python、pandas)

问题描述

假设我有以下数据框。我想以“剩余天数”排序的方式对其进行转换。ID 可以多次使用,并且所有报告编号都是唯一的。但我希望每个 ID 出现一次,然后再次使用已使用的 ID。

比如,AABBCC -> ABCABC 或 AABCCC -> ABCACC。

我怎么转这个。

ID 报告 剩余天数
171 11 5
171 12 9
182 13 1
182 14 2

进入这个?

ID 报告 剩余天数
182 13 1
171 11 5
182 14 2
171 12 9

标签: pythonpandas

解决方案


cumcount应该工作

df.sort_values("Days Left") \
  .assign(order=lambda x: x.groupby("ID").cumcount()) \
  .sort_values(["order", "Days Left"]) \
  .drop(columns="order")

推荐阅读