Python Pandas数据重采样与频率转换及插值处理详解

半杯拿铁
半杯拿铁
发布时间:2026-10-13| 2人浏览过
原创

本文详解Python中Pandas库的数据重采样与频率转换技术。通过resample结合asfreq实现按月、日等自定义频率的下采样,并演示asfreq的pad前向填充用法。同时介绍线性插值interpolate及前后向填充bfill/pad处理缺失值的方法,结合代码示例展示时间序列数据的变频与插值实际操作。

Pandas官方文档与学习建议

在进行Python深度数据处理时,官方文档始终是最权威且全面的参考资料。无论是CSDN、简书还是其他技术社区,其教程内容大多源自官方文档。因此,建议读者具备基本的英语阅读能力,优先查阅官方文档;即便英语基础薄弱,仅阅读其中的Sample(示例)代码也能获得极大的帮助。

数据重采样与频率转换实现

以下直接展示核心代码实现:


import pandas as pd
import numpy as np
rng = pd.date_range('20180101', periods=40)
ts = pd.Series(np.arange(1,41), index=rng)#这一行和上一行生成了一个index为时间,一共40天的数据
ts_m = ts.resample('M').asfreq()#对数据进行按月重采样,之后再asfreq()
print(ts)
print(ts_m)

注:由于部分原因,该部分内容暂未完全写完,后续将补充完整。

运行结果如下:当使用月度频率'M'进行采样时,系统会提取每月的最后一天数据,例如1月31日和2月28日。需要注意的是,必须调用asfreq()方法,否则resample()仅返回一个重采样对象,无法直接获取结果。除了'M'之外,用户还可以自定义任意频率,例如'3M'代表三个月,'5T'代表五分钟,'30S'代表三十秒。更多频率设置细节请查阅官方文档。


2018-01-07   7
2018-01-08   8
2018-01-09   9
2018-01-10  10
2018-01-11  11
2018-01-12  12
2018-01-13  13
2018-01-14  14
2018-01-15  15
2018-01-16  16
2018-01-17  17
2018-01-18  18
2018-01-19  19
2018-01-20  20
2018-01-21  21
2018-01-22  22
2018-01-23  23
2018-01-24  24
2018-01-25  25
2018-01-26  26
2018-01-27  27
2018-01-28  28
2018-01-29  29
2018-01-30  30
2018-01-31  31
2018-02-01  32
2018-02-02  33
2018-02-03  34
2018-02-04  35
2018-02-05  36
2018-02-06  37
2018-02-07  38
2018-02-08  39
2018-02-09  40
Freq: D, dtype: int32
2018-01-31  31.0
2018-02-28   NaN
Freq: M, dtype: float64

asfreq方法详解

关于asfreq()的具体用法,示例如下:


# to 45 minute frequency and forward fill
In [5]: converted = ts.asfreq('45Min', method='pad')
 
In [6]: converted.head()
Out[6]: 
2011-01-01 00:00:00  0.469112
2011-01-01 00:45:00  0.469112
2011-01-01 01:30:00  -0.282863
2011-01-01 02:15:00  -1.509059
2011-01-01 03:00:00  -1.135632
Freq: 45T, dtype: float64

数据插值与填充处理

既然涉及下采样,自然也包括数据插值处理。插值的具体用法如下所示:

上述代码演示了线性插值。此外,Pandas还提供了向前填充(.bfill())和向后填充(.pad())的方法。具体实现细节可参考官方文档,官方文档确实是最佳的学习资源。


>>> s = pd.Series([0, 1, np.nan, 3])
>>> s.interpolate()
0  0
1  1
2  2
3  3
dtype: float64

以上关于Python数据处理中Pandas数据变频或插值的实例分享完毕,希望能为读者提供参考。欢迎大家多多支持本站,获取更多技术内容。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。