gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 17:35:47 36 4
gpt4 key购买 nike

我有一个包含姓名、高度、体重和出生日期等个人数据的数据集。我会用特定月份和年份出生的人数构建一个图表。我正在使用 python pandas 来完成此操作,我的策略是尝试按年和月进行分组并使用计数进行添加。但我得到的最接近的是按年或按月而不是同时计算人数。

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

stackoverflow 中的其他问题指向一个名为 TimeGrouper 的 Grouper,但在 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由于多索引级别名称必须唯一的限制,上述代码不再有效,您现在需要重命名级别才能使其正常工作:

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 - 如何使用 Pandas 按月和年对行进行分组和计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38792122/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com