在pandas数据框中创建一个列,用于计算两行之间的差异

时间:2015-09-26 11:03:08

标签: python pandas

我想创建一个名为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

1 个答案:

答案 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