我想创建一个名为df[column_name]
的新列,其结果是当前行与其上一行之间的差异。
在第一行的情况下,上面没有任何内容,因此更改为0.第二行更改为2(26-24),依此类推。
dates | data | result
24-09 24 0
25-09 26 2
26-09 27 1
27-09 28 1
28-09 26 -2
答案 0 :(得分:1)
您可以使用diff
方法与fillna
一起使用0填充第一个NaN:
df['data'].diff().fillna(0)
示例:
In [6]: df = pd.DataFrame({'data':[24,26,27,28,26]})
In [7]: df['result'] = df['data'].diff().fillna(0)
In [8]: df
Out[8]:
data result
0 24 0
1 26 2
2 27 1
3 28 1
4 26 -2