gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 22:17:45 24 4
gpt4 key购买 nike

例如,我有以下代码,它创建一个数据帧,其索引包含单个值 - 日期“2018-03-06”(星期二)。请注意,此日期属于 2018 年 3 月 5 日这一周(星期一):

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()

产生:

2018-03-12    3
Freq: W-MON, dtype: int64

为什么 pandas 将日期向前滚动一周?我预计结果会在 2018 年 3 月 5 日重新采样,因为那一周是生成值的时间,而且我使用的是 freq='W-MON'

更新

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

最佳答案

让我们尝试使用标签关闭see docs :

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', label='left',closed='left').size()

输出:

2018-03-05    3
Freq: W-MON, dtype: int64

并且,

values = [1, 1, 1]
dates = pd.to_datetime(np.repeat('2018-03-05', 3))
df = pd.DataFrame({
'value': values
}, index=dates)
df.resample('W-MON', label='left',closed='left').size()

输出:

2018-03-05    3
Freq: W-MON, dtype: int64

Interesting note about the docs, the signature states that 'closed' defaults to None. However, the docstring states that 'closed' default 'left'.

关于python - 当使用 W-MON 频率重新采样时,为什么 pandas 会向前滚动一周?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49544421/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com