为了账号安全,请及时绑定邮箱和手机立即绑定

Pandas 时间序列重新采样,分箱似乎关闭

Pandas 时间序列重新采样,分箱似乎关闭

Go
慕妹3146593 2021-09-11 20:11:38
当我注意到这种奇怪的分箱时,我正在用我认为知道的有关大熊猫的一些东西回答另一个问题,即时间序列重采样。假设我有一个包含每日日期范围索引的数据框和一个我想要重新采样和求和的列。index = pd.date_range(start="1/1/2018", end="31/12/2018") df = pd.DataFrame(np.random.randint(100, size=len(index)),                   columns=["sales"], index=index)>>> df.head()            sales2018-01-01     662018-01-02     182018-01-03     452018-01-04     922018-01-05     76现在我重新采样一个月,一切看起来都很好:>>>df.resample("1M").sum()            sales2018-01-31   15072018-02-28   11862018-03-31   1382[...]2018-11-30   13422018-12-31   1337如果我尝试在更多个月内重新采样,尽管分箱开始出现问题。这一点尤其明显6Mdf.resample("6M").sum()                                                                       sales2018-01-31   15072018-07-31   83932019-01-31   7283第一个 bin 跨越一个多月,最后一个 bin 跨度为一个月。也许我必须设置closed="left"以获得适当的限制:df.resample("6M", closed="left").sum()                                                        sales2018-06-30   80902018-12-31   90542019-06-30     39现在我在 2019 年有一个额外的垃圾箱,里面有来自 2018-12-31 的数据......这工作正常吗?我错过了我应该设置的任何选项吗?编辑:这是我希望以六个月为间隔重新采样一年的输出,第一个间隔从 1 月 1 日到 6 月 30 日,第二个间隔从 7 月 1 日到 12 月 31 日。df.resample("6M", closed="left").sum()                                                        sales2018-06-30   80902018-12-31   9093 # 9054 + 39请注意,这里也有一些关于 6 月 30 日数据发生了什么的疑问,它是像我期望的那样进入第一个垃圾箱还是第二个?我的意思是最后一个垃圾箱很明显,但同样的情况可能发生在所有垃圾箱中。
查看完整描述

2 回答

?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

添加np.random.seed(365)以检查我们的两个输出。


print(df.resample("6M", kind='period').sum())


         sales

2018-01   8794

2018-07   9033

这对你有用吗?


查看完整回答
反对 回复 2021-09-11
  • 2 回答
  • 0 关注
  • 194 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信