相关疑难解决方法(0)

使用 W-MON 频率重新采样时,为什么熊猫会向前滚动一周?

例如,我有以下代码创建一个数据框,该数据框的索引包含单个值 - 日期“2018-03-06”(星期二)。请注意,此日期属于 2018-03-05(星期一)这一周:

values = [1, 1, 1]
dates = pd.to_datetime(np.repeat('2018-03-06', 3))
df = pd.DataFrame({
    'value': values
}, index=dates)
df.resample('W-MON').size()
Run Code Online (Sandbox Code Playgroud)

它产生:

2018-03-12    3
Freq: W-MON, dtype: int64
Run Code Online (Sandbox Code Playgroud)

为什么大熊猫会将日期向前滚动一周?我原以为结果会被重新采样到 2018-03-05,因为那是生成值的那一周,我正在使用freq='W-MON'.

更新

正如所指出的,我需要添加一个label参数来resample定义要使用的 bin 边缘。使用label='left'解决了在正确的星期内对日期进行分桶的问题,除非日期落在一周的开始(在本例中为星期一)。例如,如果我将重采样应用于日期 2018-03-05,label='left'那么重采样值为 2018-02-26,而它应该是 2018-03-05。

python pandas

7
推荐指数
1
解决办法
2219
查看次数

标签 统计

pandas ×1

python ×1