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

Python 在数据框中创建一列,用于计算两行之间的差异,python,pandas,Python,Pandas,我想创建一个名为df[column\u 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 为此,您可以使用diff方法以及fillna将第一个NaN填充为0: df[

我想创建一个名为
df[column\u 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

为此,您可以使用
diff
方法以及
fillna
将第一个NaN填充为0:

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

同时,您是否知道是否有可能在另一个数据框中计算25-09和27-09之间+4的正运行,并将其存储在一个单独的数据框中,该数据框有三列:开始日期、结束日期和运行(可能是正的或负的)?最好只问一个新问题(因为它看起来真的很不一样,而且评论也不是很方便)