我有一个数据框
name date quantity
'A' 2016-12-02 20
'A' 2016-12-04 5
'A' 2016-11-30 10
'B' 2016-11-30 10
...
我想要做的是计算名称的任何一对连续日期(按时间顺序连续)、数量差异以及名称的平均值。
日期确实不一定按时间顺序排列。
具体来说,对于名称A
,我想计算+10(12月2日至11月30日的差异)和-15(12月4日至11月2日的差异),然后对它们进行平均,以获得该名称的最终结果为 -2.5。
想法?
最佳答案
print (df.groupby('name')['quantity'].apply(lambda x: x.diff().mean()).reset_index())
name quantity
0 'A' -2.5
1 'B' NaN
编辑:您可以添加 sort_values
按列日期
print (df.sort_values('date')
.groupby('name')['quantity']
.apply(lambda x: x.diff().mean())
.reset_index())
name quantity
0 'A' -2.5
1 'B' NaN
关于python - Pandas 数据帧中任意两连续行之间差异的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41038400/