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

我有一个 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_sold

1-1,2015  3

2-1,2015  5

3-1,2015  6

...

9-1,2015  7

10-1,2015  9

11-1,2015  6

12-1,2015  2

==================

1-1,2016  2

2-1,2016  5

3-1,2016  6

...

9-1,2016  7

10-1,2016  9

11-1,2016  6

12-1,2016  2

==================

1-1,2017  4

2-1,2017  5

3-1,2017  6

...

9-1,2017  7

10-1,2017  9

11-1,2017  6

12-1,2017  2

==================

1-1,2018  4

2-1,2018  5

3-1,2018  6

...

9-1,2018  7


烙印99
浏览 153回答 2
2回答

MM们

我最终做了这样的事情:对于 df.index.month.unique() 中的月份:   df_month_avg = df[df.index.month == month].mean(axis=0, numeric_only=True)对于计数,我只是用 count() 替换了 mean()这似乎有效……即使我的目标是使用重采样方法……但我找不到重采样分组键来执行此操作。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python