Python 将数据帧中的每一行减去前一行

Python 将数据帧中的每一行减去前一行,python,pandas,Python,Pandas,我有这样一个数据帧: Day 123 126 210 230 我想创建一个新的列,将每一行减去前一行。我试过这个: df['Diff']=df.set_index('Day').diff() 但这似乎并不正确 我期望的输出是: Day Diff 123 0 126 3 210 84 230 20 您不需要将日期设置为该日期的索引: In [55]: df.Day.diff().fillna(0) Out[55]: 0 0.0 1 3.0 2 84

我有这样一个数据帧:

Day
123
126
210
230
我想创建一个新的列,将每一行减去前一行。我试过这个:

df['Diff']=df.set_index('Day').diff()
但这似乎并不正确

我期望的输出是:

Day   Diff
123   0
126   3
210   84
230   20 

您不需要将
日期设置为该日期的索引:

In [55]: df.Day.diff().fillna(0)
Out[55]:
0     0.0
1     3.0
2    84.0
3    20.0
Name: Day, dtype: float64
或者,如果您只有一列:

In [56]: df.diff()
Out[56]:
    Day
0   NaN
1   3.0
2  84.0
3  20.0
如果需要整数:

In [58]: df.diff().fillna(0).astype(int)
Out[58]:
   Day
0    0
1    3
2   84
3   20