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