假设有一个包含日期和数值的数据集df,如下所示:
import pandas as pd
import numpy as np
# 创建示例数据集
dates = pd.date_range(start='2020-01-01', end='2020-01-31', freq='D')
values = np.random.randint(10, 100, size=31)
df = pd.DataFrame({'date': dates, 'value': values})
# 查看示例数据集
print(df.head())
输出:
date value
0 2020-01-01 49
1 2020-01-02 78
2 2020-01-03 97
3 2020-01-04 27
4 2020-01-05 91
现在我们要实现的是按周、月或年聚合数值。首先,我们需要将日期列设置为数据集的索引:
df.set_index('date', inplace=True)
然后,我们可以使用resample方法对数据进行聚合。为了演示,我们分别使用周、月和年粒度进行聚合:
按周聚合:
# 按周聚合
weekly_df = df.resample('W').sum()
print(weekly_df.head())
输出:
value
date
2020-01-05 450
2020-01-12 452
2020-01-19 477
2020-01-26 498
2020-02-02 91
按月聚合:
# 按月聚合
monthly_df = df.resample('M').sum()
print(monthly_df.head())
输出:
value
date
2020-01-31 1645
2020-02-29 466
按年聚合:
# 按年聚合
yearly_df = df.resample('Y').sum()
print(yearly_df.head())
输出:
value
date
2020-12-31 2111
可以看到,使用resample方法可以方便地对数据进行按日期粒度的聚合。
上一篇:按日期链接行
下一篇:按日期列+X天进行分区