比如我有一个长度为一年365天的数字序列,我想以每月的天数[31,28,31,30,31,30,31,31,30,31,30,31]进行分组,分组后对每组进行平均(或其他操作),得到一个长度为12个月的序列,可以使用Pandas
的resample()
方法:
import numpy as np
import pandas as pd
# 创建一个长度为365的日期序列
date_range = pd.date_range(start='2022-01-01', periods=365)
# 将日期序列转换为pandas的DatetimeIndex对象
date_index = pd.DatetimeIndex(date_range)
# 创建一个长度为365的数字序列
data = np.random.rand(365)
# 将数字序列转换为pandas的Series对象
series = pd.Series(data, index=date_index)
# 按照每月的天数进行分组,并计算每组的平均值
monthly_mean = series.resample('M').mean()
print(monthly_mean)
这段代码将输出一个长度为12的月份序列,其中每个元素表示对应月份的平均值。
在 Pandas
中,resample()
方法的参数 M
表示按月进行重采样。除了 M
,还有其他一些常用的选项来指定时间间隔:
D
:按天重采样。W
:按周重采样。Q
:按季度重采样。H
:按小时重采样。T
:按分钟重采样。S
:按秒重采样。