python - 转换数据框时遇到问题(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 |
解决方案
cumcount应该工作
df.sort_values("Days Left") \
.assign(order=lambda x: x.groupby("ID").cumcount()) \
.sort_values(["order", "Days Left"]) \
.drop(columns="order")
推荐阅读
- c# - 放置在 ASP.NET Web 窗体应用程序的 App_Code 特殊文件夹中的源代码是否与已编译的应用程序一样可靠?
- javascript - JavaScript 中的事件处理程序
- java - Android 将位图转换为 URL
- reactjs - 如何从已编译的 react js 单页应用程序中包含已编译的 react js 组件?
- javascript - Haskell 到 Javascript Lamba 函数翻译
- javascript - 使用 Ionic 无限滚动和 YouTube v3 API
- acumatica - 通过 RESTful API 在 Acumatica 中获取联系人
- emacs - emacs 键绑定中的 & 是什么?
- php - 如何从 php 代码中的 php 代码访问 $nev 变量?
- java - 为什么我会在这段代码中得到 nullPointerException?