【发布时间】:2016-10-21 21:31:06
【问题描述】:
给定一个看起来像这样的 Pandas 数据框
GROUP VALUE MASK
1 5 false
2 10 false
2 20 false
1 7 true
3 17 false
3 18 false
1 100 false
1 200 true
对于 MASK 为真的每一行,我想获得与该组中前一个值的差异,即结果应该是
VALUE DIFF
7 2
200 100
如何在 Pandas 中计算?
对于具有大约 200 万行和 100 万组的大型数据框,我如何才能快速计算?
【问题讨论】:
-
回应下面的速度评论:确保您使用的是更新版本的 pandas,因为 groupby 的速度已经有了很大的改进。除此之外,如果您要对同一子集进行重复计算,您可能会考虑对数据进行子集化。