在pandas中,当使用“按周频率”重采样时,由于日期的预设规则和周起始日的不同,有时会出现start和end日期不在结果中的情况。解决这个问题的方法是使用“closed”参数和“label”参数,分别指定左闭合和以左端点为标签的日期时间间隔。
代码示例:
import pandas as pd
import numpy as np
# 构造示例数据
dates = pd.date_range(start='2019-01-01', end='2019-12-31')
df = pd.DataFrame({'value': np.random.rand(len(dates))}, index=dates)
# 按周重采样,指定 closed 和 label 参数
resampled = df.resample('W-MON', closed='left', label='left').mean()
# 打印结果
print(resampled)
输出结果中,每周的起点为星期一,且首尾周的日期范围是闭合的:
value
2018-12-31 0.327935
2019-01-07 0.517243
2019-01-14 0.533120
2019-01-21 0.535732
2019-01-28 0.512556
... ...
2019-11-25 0.471542
2019-12-02 0.383716
2019-12-09 0.473605
2019-12-16 0.437484
2019-12-23 0.450929
[53 rows x 1 columns]
上一篇:按州名称分组汇总多个变量