首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用python要计算每个月的平均6个月。

使用python要计算每个月的平均6个月。
EN

Stack Overflow用户
提问于 2022-07-25 16:36:43
回答 1查看 66关注 0票数 0

我有一个包含3列( user_id、year_month和value )的dataframe,我想为每一个唯一的user_id自动计算一年的最后6个月的平均值,并将它分配给新的列。

代码语言:javascript
复制
 user_id  value     year_month
    1      50       2021-01
    1      54       2021-02
   ..       ..           ..
    1      50       2021-11
    1      47       2021-12
    2      36       2021-01
    2     48.5      2021-05
    ..     ..         ..
    2     54        2021-11
    2     30.2      2021-12
    3     41.4      2021-01
    3     48.5      2021-02
    3     41.4      2021-05
    ..     ..         ..
    3     30.2      2021-12

     Total year has 12-24 months 
      to get jan 2022 value[dec 2021 to july 2021]=[55+32+33+63+54+51]/6
      to get feb 2022 value[jan 2022 to aug 2021] =[32+33+37+53+54+51]/6
      to get mar 2022 value[feb 2022 to sep 2021] =[45+32+33+63+54+51]/6
      to get apr 2022 value[mar 2022 to oct 2021] =[63+54+51+45+32+33]/6
EN

回答 1

Stack Overflow用户

发布于 2022-07-25 17:31:32

第一个索引,日期时间列

代码语言:javascript
复制
df = df.set_index('year_month')

然后执行以下操作

代码语言:javascript
复制
df.groupby('UserId').rolling('6M').transform('avg')

这是最正确的方法,但是这里有一个更直观的方法

代码语言:javascript
复制
df.sort_values('year_month').groupby('UserId').rolling(6).transform('avg') # Returns wanted series

就像保罗说的

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73112627

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档