首先,让我们每分钟创建一个样本数据:
>>> index = pd.date_range('1/1/2000', periods=60*24*400, freq='T')
>>> series = pd.Series(range(60*24*400), index=index)
>>> series.head()
2000-01-01 00:00:00 0
2000-01-01 00:01:00 1
2000-01-01 00:02:00 2
2000-01-01 00:03:00 3
2000-01-01 00:04:00 4
我可以看到closed
重新采样到每日频率时的影响:
>>> series.resample('D', closed="right").head()
1999-12-31 0.0 # <-- here, I get some data labeled 1999
2000-01-01 720.5
2000-01-02 2160.5
2000-01-03 3600.5
2000-01-04 5040.5
Freq: D, dtype: float64
>>> series.resample('D', closed="left").head()
2000-01-01 719.5
2000-01-02 2159.5
2000-01-03 3599.5
2000-01-04 5039.5
2000-01-05 6479.5
这是我对the docs所期望的行为:
关闭:{'右','左'}
bin间隔的哪一边被关闭。
现在,如果我重新采样到每月频率:
>>> series.resample('M', closed="right").head()
2000-01-31 22319.5 # <-- ?
2000-02-29 65519.5
2000-03-31 108719.5
2000-04-30 152639.5
2000-05-31 196559.5
Freq: M, dtype: float64
>>> series.resample('M', closed="left").head()
2000-01-31 21599.5
2000-02-29 64079.5
2000-03-31 107279.5
2000-04-30 151199.5
2000-05-31 195119.5
Freq: M, dtype: float64
使用1999-12-31
时,我怎么没有得到closed="right"
样本?
>>> pd.__version__
'0.22.0'
答案 0 :(得分:2)
这必须归因于label属性。您链接的文档将其描述为
标签:{'右','左'} 哪个bin边缘标签用于标记桶。对于除“M”,“A”,“Q”,“BM”,“BA”,“BQ”和“W”之外的所有频率偏移,默认值为“左”,其默认值均为“正确”。
尝试做:
series.resample('D', closed="right", label="right").head()
您会看到月和日的不同行为,因为默认标签是&#34;左&#34;对于D和&#34;对于M。