【发布时间】:2018-12-21 23:24:08
【问题描述】:
我有一个看起来像这样的 pandas DataFrame:
╔═══╦════════════╦═════════════╗
║ ║ VENDOR ID ║ DATE ║
╠═══╬════════════╬═════════════╣
║ 1 ║ 33 ║ 01/12/2018 ║
║ 2 ║ 33 ║ 03/12/2018 ║
║ 3 ║ 12 ║ 01/08/2018 ║
║ 4 ║ 12 ║ 01/15/2018 ║
║ 5 ║ 12 ║ 01/23/2018 ║
║ 6 ║ 33 ║ 05/12/2018 ║
║ 7 ║ 89 ║ 01/12/2018 ║
╚═══╩════════════╩═════════════╝
我希望得到一个表格,显示自上次出现相同 VENDOR ID 以来的天数,如下所示:
╔═══╦════════════╦═════════════╗
║ ║ VENDOR ID ║ GAP ║
╠═══╬════════════╬═════════════╣
║ 1 ║ 33 ║ ---------- ║
║ 2 ║ 33 ║ 60 ║
║ 3 ║ 12 ║ ---------- ║
║ 4 ║ 12 ║ 7 ║
║ 5 ║ 12 ║ 8 ║
║ 6 ║ 33 ║ 60 ║
║ 7 ║ 89 ║ ---------- ║
╚═══╩════════════╩═════════════╝
我一直在尝试找到一种使用 groupbys 和其他技巧来实现此目的的方法,但似乎没有任何效果。
我确实想出了我认为在 pandas 中使用 2 个嵌套的 for 循环或 iterrrows 可能会起作用的方法,但由于我的数据集的大小,使用嵌套循环不会真正起作用。
有人有什么想法吗?
【问题讨论】:
标签: python pandas datetime pandas-groupby