给定一个看起来像这样的熊猫数据框
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
Run Code Online (Sandbox Code Playgroud)
对于MASK为真的每一行,我想得到与该组中先前值的差,即结果应为
VALUE DIFF
7 2
200 100
Run Code Online (Sandbox Code Playgroud)
如何在Pandas中计算?
如何为具有约200万行和100万组的大型数据帧快速计算出该值?
使用groupby,diff,'MASK'
pd.concat([df.VALUE, df.groupby('GROUP').VALUE.diff()],
axis=1, keys=['VALUE', 'DIFF'])[df.MASK]
Run Code Online (Sandbox Code Playgroud)