【发布时间】:2021-10-04 13:29:30
【问题描述】:
我有一个 Pandas 数据框,其组织方式如下:
+-------+-------------------+---------+
| Name | Ready | Apples |
+-------+-------------------+---------+
| Alice | false | 1 |
| Bob | false | 3 |
| Chris | true | 10 |
| Alice | true | 5 |
| Bob | true | 7 |
| Dave | false | NaN |
+-------+-------------------+---------+
我想计算它们在准备好计数后所拥有的苹果的差异 - 所以这将是当错误变为正确的时候。如果他们已经准备好了,我只想要他们拥有的苹果数量。如果他们从来没有准备好,那么就只是 NaN。问题是,在它变为 True 之前,每个人可能有多个 False 行。例如,我们可能会看到 Alice 在她最终准备好之前 3 次没有准备好。
有没有办法对名称进行分组,然后找出 false --> true 来计算苹果的差异?我希望我的输出表看起来像:
+-------+--------------------+
| Name | Collected Apples|
+-------+--------------------+
| Alice | 4 (cuz 5-1 = 4) |
| Bob | 4 |
| Chris | 10 |
| Dave | NaN |
+-------+--------------------+
有什么想法吗?谢谢!
【问题讨论】:
-
按名称分组,然后在每个子df中,向前移动,找到发生变化的行,提取差异。
标签: pandas dataframe group-by difference