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