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

python时间序列重新采样以获得正确的计数

python时间序列重新采样以获得正确的计数

烙印99 2021-06-28 04:09:12
我有一个 4 年的月度时间序列(索引是时间戳)。因此,理想情况下,我将有 4 个 jan 行、4 个 feb 行、4 个 mar 行、4 个 apr 行......等等。但是,有时,我可能会错过一个月或更长时间。因此,我可能有 1 月 4 日、2 月 2 日、3 月 3 日、4 月 4 日、5 月 1 日……等等我正在尝试重新采样('MS').count() 但这不起作用,因为它每个月都算作一个。我如何分组以获得正确的计数,例如;1 月 4 日、2 月 2 日、3 月 3 日、4 月 4 日、5 月 1 日……等等。然后取平均值?例如... jan 的计数是 4,因为我有 2 行与 Jan 日期。但是,Oct 的数量是 3 ......因为我有 3 排婴儿床。一月份平均销售的苹果为 13/4如果可能的话,我正在尝试通过重新采样来做到这一点,而不是通过循环或大熊猫切片。df_= df_monthly.resample('MS').count()Index       Apples_sold1-1,2015  32-1,2015  53-1,2015  6...9-1,2015  710-1,2015  911-1,2015  612-1,2015  2==================1-1,2016  22-1,2016  53-1,2016  6...9-1,2016  710-1,2016  911-1,2016  612-1,2016  2==================1-1,2017  42-1,2017  53-1,2017  6...9-1,2017  710-1,2017  911-1,2017  612-1,2017  2==================1-1,2018  42-1,2018  53-1,2018  6...9-1,2018  7
查看完整描述

2 回答

?
MM们

TA贡献1886条经验 获得超2个赞

我最终做了这样的事情:

对于 df.index.month.unique() 中的月份:

   df_month_avg = df[df.index.month == month].mean(axis=0, numeric_only=True)

对于计数,我只是用 count() 替换了 mean()

这似乎有效……即使我的目标是使用重采样方法……但我找不到重采样分组键来执行此操作。


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

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号