使用Pandas计算时间序列数据的日变化差值
解决Pandas计算每日数据差值的问题
嘿,别着急,这个需求其实用Pandas自带的方法就能轻松搞定,完全不用折腾复杂的映射操作~
因为你的数据集已经按记录日期升序排序了,这刚好满足计算相邻行差值的前提条件。我们可以直接用Pandas的diff()方法来实现:
核心代码
假设你的数据集变量名为df,存储每日事件数量的列名为n,只需要一行代码就能生成change列:
df['change'] = df['n'].diff()
这个方法会自动计算当前行的n值与前一行n值的差值,完美匹配你要的效果——比如第335天的14500减去第334天的14000,对应的change单元格就会显示500。
处理第一行的空值
因为第一行没有前一天的数据,所以生成的change列第一行值会是NaN。如果需要把这个空值替换成0(或者其他你需要的默认值),可以加上fillna()方法:
df['change'] = df['n'].diff().fillna(0)
举个直观的例子
假设你的原始数据片段是这样的:
| 记录日期 | n |
|---|---|
| 第334天 | 14000 |
| 第335天 | 14500 |
| 第336天 | 14300 |
运行代码后,change列的结果会是:
| change |
|---|
| NaN |
| 500 |
| -200 |
如果用了fillna(0),第一行就会变成0啦~
内容的提问来源于stack exchange,提问作者constar99
相关产品推荐
相关产品推荐

