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)'。 –