【发布时间】:2023-02-25 00:47:30
【问题描述】:
我有一个像这样的熊猫数据框:
| Name | Age | Flag |
|---|---|---|
| "John" | 20 | 1 |
| "John" | 23 | 0 |
| "Marie" | 21 | 1 |
| "John" | 26 | 1 |
| "Marie" | 28 | 0 |
我想为每一行计算该行中人的年龄与标记为 1 的前行中同一人的最后年龄之间的差异。如果没有标记为 1 的先行行人,我对 0 没意见。我期待像这样的系列作为输出:
| Result |
|---|
| 0 |
| 3 |
| 0 |
| 6 |
| 7 |
我想做类似的事情:
df
.groupby("Name")
.expanding()
.apply(custom_function)
不幸的是,给予 apply 的 custom_function 只能在系列上工作,我需要访问标志列以找到正确的值来发挥我的作用。
我该如何解决我的问题,是否有更好的解决方案?
【问题讨论】: