用前面的i减去数据帧中的每一行

2024-04-26 23:02:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样一个数据帧:

Day
123
126
210
230

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

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

但这似乎不正确。你知道吗

我想要的输出是:

Day   Diff
123   0
126   3
210   84
230   20 

Tags: 数据dfindexdiffsetday
1条回答
网友
1楼 · 发布于 2024-04-26 23:02:54

无需将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

相关问题 更多 >