【发布时间】:2020-07-31 07:01:12
【问题描述】:
假设我有以下dataframe:
df = pd.DataFrame(
{
'A': ['a', 'a', 'b', 'b'],
'B': [10, 8, 6, 4],
'C': [9, 7, 5, 3]
}
)
我想实现这个:
df.groupby('A').B.apply(lambda x: x.diff())
但我希望diff() 介于B 和C 之间,而不是介于B 和B 之间(希望这是有道理的)。我可以做这样的事情来实现我所追求的diff():
df.C.shift(-1)-df.B
但我不知道应该如何将它合并到我的 groupby 逻辑中。
最终结果如下:
0 NaN
1 -3.0
2 NaN
3 -3.0
有什么想法吗?
【问题讨论】:
-
不确定这是否是您要查找的内容
df.groupby('A').pipe(lambda g: g.C.last() - g.B.first())
标签: python pandas dataframe lambda pandas-groupby