Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在组中保留以前的值_Python_Pandas - Fatal编程技术网

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()