Python 3.x python-3:如何创建一个新列作为另一列的两个连续行的减法?
我有一个熊猫数据框Python 3.x python-3:如何创建一个新列作为另一列的两个连续行的减法?,python-3.x,pandas,Python 3.x,Pandas,我有一个熊猫数据框 x 1 3 4 7 10 我想创建一个新列y作为y[I]=x[I]-x[I-1](和y[0]=x[0]) 因此,上述数据框将变为: x y 1 1 3 2 4 1 7 3 10 3 如何使用python-3实现这一点?非常感谢使用.shift()和fillna(): 为了解释这是做什么的,如果我们打印(df['x'].shift(1))我们得到以下序列: 0 NaN 1 1.0 2 3.0 3 4.0 4 7.0 这是从'x'向下移动一行的
x
1
3
4
7
10
我想创建一个新列y
作为y[I]=x[I]-x[I-1]
(和y[0]=x[0]
)
因此,上述数据框将变为:
x y
1 1
3 2
4 1
7 3
10 3
如何使用python-3实现这一点?非常感谢使用.shift()
和fillna()
:
为了解释这是做什么的,如果我们打印(df['x'].shift(1))
我们得到以下序列:
0 NaN
1 1.0
2 3.0
3 4.0
4 7.0
这是从'x'
向下移动一行的值。第一行得到NaN
,因为上面没有向下移动的值。因此,当我们这样做时:
print(df['x'] - df['x'].shift(1))
我们得到:
0 NaN
1 2.0
2 1.0
3 3.0
4 3.0
这是减去的值,但在第一行中,我们又得到了一个NaN
。为了清除这个问题,我们使用.fillna()
,告诉它只要在遇到空值时从df['x']
获取值即可
0 NaN
1 2.0
2 1.0
3 3.0
4 3.0