温馨提示×

Pandas中resample方法详解

小云
147
2023-08-11 14:48:55
栏目: 编程语言

在Pandas中,resample方法用于对时间序列数据进行重新采样。重新采样是指将时间序列数据的频率从一个频率转换为另一个频率,比如从按天采样转换为按月采样。

resample方法的基本语法是:

DataFrame.resample(rule, axis=0, closed=None, label=None, convention='start', kind=None, loffset=None, base=0, on=None, level=None, origin='start_day', offset=None)

参数说明:

  • rule: 重新采样的规则,可以是字符串(如’D’,‘M’),也可以是一个pandas DateOffset对象(如pd.DateOffset(months=1))。

  • axis: 要重新采样的轴,默认为0(行索引)。

  • closed: 用于指定在重新采样中哪个端是闭合的,默认为None,表示两个端都是开放的。

  • label: 在重新采样中,用于指定聚合结果的标签是聚合区间的左端还是右端,默认为None,表示使用聚合区间的右端作为标签。

  • convention: 用于指定重新采样的时间标签是表示区间的开始还是结束,默认为’start’,表示表示区间开始。

  • kind: 用于指定聚合区间的类型,默认为None,表示使用默认的聚合区间类型。

  • loffset: 用于指定偏移量,即重新采样结果的索引的偏移量,默认为None。

  • base: 用于指定重新采样的基准,默认为0,表示使用0作为基准。

  • on: 用于指定重新采样的列,默认为None,表示对所有列进行重新采样。

  • level: 用于指定重新采样的层级,默认为None,表示对所有层级进行重新采样。

  • origin: 用于指定聚合区间的原点,默认为’start_day’,表示聚合区间的原点为每天的开始。

  • offset: 用于指定聚合区间的偏移量。

resample方法返回一个Resampler对象,可以使用该对象的聚合方法进行聚合操作,比如mean()、sum()、min()、max()等。

示例代码如下:

import pandas as pd
# 创建一个包含日期和数值的DataFrame
df = pd.DataFrame({'date': pd.date_range(start='2022-01-01', end='2022-01-31'), 'value': range(31)})
# 将时间序列数据按月重新采样,并计算每个月的平均值
resampled_df = df.resample('M', on='date').mean()
print(resampled_df)

输出结果为:

value
date
2022-01-31  15.516129

0