微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用pandas按月和年对行进行分组和计数?

如何解决如何使用pandas按月和年对行进行分组和计数?

要对多个条件进行分组,请传递列或条件的列表:

df['birthdate'].groupby([df.birthdate.dt.year, df.birthdate.dt.month]).agg('count')

例:

In [165]:
df = pd.DataFrame({'birthdate':pd.date_range(start=dt.datetime(2015,12,20),end=dt.datetime(2016,3,1))})
df.groupby([df['birthdate'].dt.year, df['birthdate'].dt.month]).agg({'count'})

Out[165]:
                    birthdate
                        count
birthdate birthdate          
2015      12               12
2016      1                31
          2                29
          3                 1

由于0.23.0多索引级别名称必须唯一的限制,上述代码从版本开始不再起作用,您现在需要rename级别才能使其起作用:

In[107]:
df.groupby([df['birthdate'].dt.year.rename('year'), df['birthdate'].dt.month.rename('month')]).agg({'count'})

Out[107]: 
           birthdate
               count
year month          
2015 12           12
2016 1            31
     2            29
     3             1

解决方法

我有一个包含个人数据(例如姓名,身高,体重和出生日期)的数据集。我将用特定月份和年份中出生的人数来构建图表。我正在使用python熊猫来完成此操作,我的策略是尝试按年份和月份分组并使用计数进行添加。但是我得到的最接近的是按年或按月统计人数,而不是按两者统计。

df['birthdate'].groupby(df.birthdate.dt.year).agg('count')

其他问题指向一个名为TimeGrouper的石斑鱼,但在熊猫文档中搜索没有发现任何问题。任何想法?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。