You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何快速为大型Pandas DataFrame添加序列差分列?

高效实现Pandas序列差分并新增列

直接使用Pandas内置的diff()方法即可完成需求,这是矢量化操作,底层基于C实现,相比Python循环能带来数量级的性能提升,完全解决超大型数据集的耗时问题。

实现代码

import pandas as pd

# 示例DataFrame
df = pd.DataFrame({
    'series_1' : [10.1, 15.3, 16, 12, 14.5, 11.8, 2.3, 7.7,5,10],
    'series_2' : [9.6,10.4, 11.2, 3.3, 6, 4, 1.94, 15.44, 6.17, 8.16]
})

# 新增diff_2列:计算series_2的一阶差分(当前行 - 前一行)
df['diff_2'] = df['series_2'].diff()

结果说明

  • diff()默认参数periods=1,即计算相邻行的差值,第一行因无前置数据会生成NaN
  • 执行后DataFrame的输出如下:
series_1  series_2  diff_2
0      10.1      9.60     NaN
1      15.3     10.40    0.80
2      16.0     11.20    0.80
3      12.0      3.30   -7.90
4      14.5      6.00    2.70
5      11.8      4.00   -2.00
6       2.3      1.94   -2.06
7       7.7     15.44   13.50
8       5.0      6.17   -9.27
9      10.0      8.16    1.99

可选调整

如果需要填充第一行的NaN,可以搭配fillna()方法:

# 将NaN替换为0,也可替换为其他值如series_2的第一个值
df['diff_2'] = df['series_2'].diff().fillna(0)

内容的提问来源于stack exchange,提问作者Khaled DELLAL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 07:25:18