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

时间:2016-04-19 19:57:43

标签: python pandas

我有一个像这样的数据框:

Day
123
126
210
230

我想创建一个新列,它按前面的一行减去每一行。我试过这个:

df['Diff']=df.set_index('Day').diff()

但这似乎不正确。

我想要的输出是:

Day   Diff
123   0
126   3
210   84
230   20 

1 个答案:

答案 0 :(得分:2)

您无需将Day设置为该索引:

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
相关问题