0
我想要創建一個新列,該列是應用於分組值的移位功能的結果。使用groupby內的移位值創建新列
df = pd.DataFrame({'X': [0,1,0,1,0,1,0,1], 'Y':[2,4,3,1,2,3,4,5]})
df
X Y
0 0 2
1 1 4
2 0 3
3 1 1
4 0 2
5 1 3
6 0 4
7 1 5
def func(x):
x['Z'] = test['Y']-test['Y'].shift(1)
return x
df_new = df.groupby('X').apply(func)
X Y Z
0 0 2 NaN
1 1 4 2.0
2 0 3 -1.0
3 1 1 -2.0
4 0 2 1.0
5 1 3 1.0
6 0 4 1.0
7 1 5 1.0
正如你從輸出中看到的那樣,數值是順序移動的,沒有考慮到一個組。
我看到過類似的問題,但我無法弄清楚它爲什麼不能按預期工作。
這很棒,按預期工作。謝謝。 – olyashevska