我想创建一个新的列,它应该包含从第二列开始的另一个列的值。这意味着对于新列,最后一个值将是Nan。
数据集的例子。
A B C
10 20 30
40 50 60
70 80 90
100 110 120
新列需要作为:
A B C D
10 20 30 50
40 50 60 80
70 80 90 110
110 110 120 Nan
列D需要从列B中从第二行开始提取值。
我试过如下代码:
df['D'] = [df['B'][i] for i in range(0, len(df))]
这显然与B相同,我无法从1更改行:len(df)
直接使用shift(-1)
>>> df['D'] = df['B'].shift(-1)
A B C D
0 10 20 30 50.0
1 40 50 60 80.0
2 70 80 90 110.0
3 100 110 120 NaN
使用shift
:
df['D'] = df['B'].shift(-1)
输出:
A B C D
0 10 20 30 50.0
1 40 50 60 80.0
2 70 80 90 110.0
3 100 110 120 NaN