【发布时间】:2017-12-08 10:12:30
【问题描述】:
我想创建一个新列,它是应用于分组值的移位函数的结果。
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
从输出中可以看出,这些值是按顺序移动的,而不考虑分组依据。
我看到了一个类似的问题,但我不明白为什么它不能按预期工作。
【问题讨论】:
标签: pandas