Python 在组中保留以前的值
我有以下数据帧:Python 在组中保留以前的值,python,pandas,Python,Pandas,我有以下数据帧: x y z value 0 1 a a 1 1 1 b b 2 2 1 c c 3 3 1 d d 4 4 1 a e 5 5 2 b f 6 6 2 c a 7 7 2 d b 8 8 2 a c 9 我需要将此转换为: x y z value value t-1 0 1 a a
x y z value
0 1 a a 1
1 1 b b 2
2 1 c c 3
3 1 d d 4
4 1 a e 5
5 2 b f 6
6 2 c a 7
7 2 d b 8
8 2 a c 9
我需要将此转换为:
x y z value value t-1
0 1 a a 1 NaN
1 1 b b 2 1
2 1 c c 3 2
3 1 d d 4 3
4 1 a e 5 4
5 2 b f 6 NaN
6 2 c a 7 6
7 2 d b 8 7
8 2 a c 9 8
我如何才能做到这一点?您需要:
df['value_t_minus1'] = df.groupby('x')['value'].transform(lambda x: x.shift())
>>> df
x y z value value_t_minus1
0 1 a a 1 NaN
1 1 b b 2 1.0
2 1 c c 3 2.0
3 1 d d 4 3.0
4 1 a e 5 4.0
5 2 b f 6 NaN
6 2 c a 7 6.0
7 2 d b 8 7.0
8 2 a c 9 8.0
df['value_t_minus1'] = df.groupby('x')['value'].shift()
你需要:
df['value_t_minus1'] = df.groupby('x')['value'].shift()