0
我有一个数据框的几列,我排序,按索引分组,并计算组中的每一行和下一个之间的差异。接下来我想添加最后3个差异的方法列。例如:pandas - 添加一组最后3个元素的平均值由
index A B A_diff B_diff A_diff_last3mean B_diff_last3mean
1111 1 2 0 0 NaN NaN
1111 1 2 0 0 NaN NaN
1111 2 4 1 2 0.33 0.67
1111 4 6 2 2 1 1.33
2222 5 7 NaN NaN NaN NaN #index changed
2222 2 8 -3 1 NaN NaN
我设法使用
df=df.join(df.groupby(['index'],sort=False,as_index=False).diff(),rsuffix='_diff')
y=df.groupby(['index'],sort=False,as_index=False).nth([-1,-2,-3])
z=y.groupby(['index'],sort=False,as_index=False).mean()
创建此类列,但创建一个聚合数据帧,我需要在原来的要合并的值。我尝试使用.transform()函数,但没有成功。非常感谢你的帮助。
谢谢。值得一提的是,它的工作原理是熊猫0.18.1(我需要更新) – nika
对于旧版本,'.rolling(3).mean()'必须替换为'.rolling_mean(3)'。 –