加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 按用户定义的月份范围对pandas dataFrame进行分组

发布时间:2020-12-20 11:59:38 所属栏目:Python 来源:网络整理
导读:从十月到四月,将数据分组到冬季的最佳方法是什么?由于均匀分布的频率为 TimeGrouper ,我不能从1972/1973年,1973/1974年等季节输出季节性的冬季月份…也许是一件小事,但我不知道如何在不开始的情况下做到这一点写一个矫枉过正的解决方案. sd_x sd_y1972-10-3
从十月到四月,将数据分组到冬季的最佳方法是什么?由于均匀分布的频率为 TimeGrouper,我不能从1972/1973年,1973/1974年等季节输出季节性的冬季月份…也许是一件小事,但我不知道如何在不开始的情况下做到这一点写一个矫枉过正的解决方案.

sd_x       sd_y
1972-10-31   0.000000   0.709677
1972-11-30   1.720838   4.366667
1972-12-31  15.893438   5.600000
1973-01-31   6.256230   6.548387
1973-02-28   0.653714  53.142857
1973-03-31   0.000000  70.354839
1973-04-30   0.000000  11.700000
1973-10-31   0.000000   0.096774
1973-11-30   0.000000   4.266667
1973-12-31   0.394652  53.419355
1974-01-31   4.540915  46.645161
1974-02-28   2.978056  35.571429
1974-03-31   0.000000   4.967742
1974-04-30   0.000000   0.000000
1974-10-31   0.000000   0.064516
1974-11-30   0.000000   1.000000
1974-12-31   5.585954  20.096774
1975-01-31  50.498147  24.580645
1975-02-28  35.906097  22.000000
1975-03-31   0.457109   5.483871
1975-04-30   0.000000   0.433333

解决方法

使用pd.offsets.MonthBegin将月份移回4

shifted_months = df.index - pd.offsets.MonthBegin(5)
shifted_months

DatetimeIndex(['1972-06-01','1972-07-01','1972-08-01','1972-09-01','1972-10-01','1972-11-01','1972-12-01','1973-06-01','1973-07-01','1973-08-01','1973-09-01','1973-10-01','1973-11-01','1973-12-01','1974-06-01','1974-07-01','1974-08-01','1974-09-01','1974-10-01','1974-11-01','1974-12-01'],dtype='datetime64[ns]',freq=None)

然后我们可以使用.year属性来分组和求和

df.groupby(shifted_months.year).sum()

           sd_x        sd_y
1972  24.524220  152.422427
1973   7.913623  144.967128
1974  92.447307   73.659139

我们可以用指数来提升指数

df.groupby(shifted_months.year).sum().rename(lambda x: '{}/{}'.format(x,x + 1))

                sd_x        sd_y
1972/1973  24.524220  152.422427
1973/1974   7.913623  144.967128
1974/1975  92.447307   73.659139

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读