【发布时间】:2022-01-22 22:30:29
【问题描述】:
我不太清楚DataFrame.resample 中的 bin-membership 是如何确定的。
示例/实际输出:
>>> df = pd.DataFrame(index=pd.date_range(start='2021-04-21 01:00:00', end='2021-04-28 01:00', freq='1d'), data=[1]*8)
>>> df
0
2021-04-21 01:00:00 1
2021-04-22 01:00:00 1
2021-04-23 01:00:00 1
2021-04-24 01:00:00 1
2021-04-25 01:00:00 1
2021-04-26 01:00:00 1
2021-04-27 01:00:00 1
2021-04-28 01:00:00 1
>>> df.resample(rule='7d', origin='2021-04-29 00:00:00', closed='right', label='right').sum()
0
2021-04-22 2
2021-04-29 6
预期输出:
0
2021-04-22 1
2021-04-29 7
推理:
我希望 pandas 会创建两个垃圾箱
(2021-04-15 00:00:00, 2021-04-22 00:00:00]
(2021-04-22 00:00:00, 2021-04-29 00:00:00]
时间戳2021-04-21 01:00:00 落入第一个 bin,而2021-04-22 01:00:00 和其余时间戳应落入第二个 bin。
编辑:我刚刚意识到使用 24*7=168 小时而不是 7 天会产生预期的结果。为什么?!
>>> df.resample(rule='168h', origin='2021-04-22 00:00:00', closed='right', label='right').sum()
0
2021-04-22 1
2021-04-29 7
我正在使用熊猫1.3.5
【问题讨论】:
-
我昨天的例子没有说服你? :)
-
@Corralien 不完全,我不想在 cmets 中用进一步的后续问题来纠缠你。
标签: python pandas dataframe pandas-resample