详解df.resample函数/dataframe.resample函数,Pandas数据重采样(resample函数)的使用方法汇总(图文详解1)
在Pandas中,resample()方法是用于时间序列数据的重采样操作,它可以将数据从一个时间频率转换为另一个时间频率。这在处理时间序列数据时非常有用,比如将日数据转换为月数据或将小时数据转换为天数据。下面我们详细介绍Pandas数据重采样的使用方法:
- 底层原理:
- Pandas的resample()方法基于时间索引,将连续的时间区间划分成新的时间区间。
- 在重采样过程中,Pandas会使用聚合函数(如sum、mean、min、max等)来计算新时间区间内的值。
- 根据新的时间频率,Pandas会自动填充缺失值。
- 基本用法:
df.resample(rule, how='mean').series_name
rule
: 重采样的时间频率,如’D'(天)、’W'(周)、’M'(月)、’Q'(季度)、’A'(年)等。how
: 指定聚合函数,常用的有’mean’、’sum’、’min’、’max’等。
- 开发流程示例:
import pandas as pd # 创建一个时间序列数据 index = pd.date_range(start='2023-01-01', end='2023-01-10', freq='D') df = pd.DataFrame({'value': [10, 15, 12, 18, 20, 22, 25, 28, 30, 35]}, index=index) # 按周重采样 df_weekly = df.resample('W').mean() print(df_weekly) # 按月重采样 df_monthly = df.resample('M').sum() print(df_monthly) # 按季度重采样 df_quarterly = df.resample('Q').max() print(df_quarterly)
- 进阶用法:
- 重采样时的填充方式:使用
fill_method
参数,如df.resample('W').fillna(method='ffill')
- 重采样时的偏移量:使用
offset
参数,如df.resample('W-MON').mean()
表示以周一为起点的周频率 - 多列重采样:对DataFrame的多列同时进行重采样,如
df[['col1', 'col2']].resample('M').sum()
- 自定义重采样频率:使用
pd.Timedelta
创建自定义的频率,如df.resample('2H').mean()
表示2小时重采样
- 重采样时的填充方式:使用
总之,Pandas的resample()方法为处理时间序列数据提供了强大的工具,通过掌握其基本用法和进阶用法,可以灵活地满足各种数据分析和预处理的需求。