pandas.groupby中的迭代
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pandas.groupby中的迭代相关的知识,希望对你有一定的参考价值。
我有这个数据框,它有三个字段:'location','sex'和'category'。
字段位置的值介于1和1000之间。字段性别的值为“m”或“f”。字段类别的值介于1到600之间。我想要为每个位置计算项目数,每个性别为一个类别值列表,比如[5,35,64,100, 216]
我尝试过类似的东西:
result5=df.loc[(df.sex=='M')&(df.category==5)].groupby(['location','category'])count()
我也可以在类别列表中为其他想要的值编写相同的代码。但它似乎非常重复
我也试过类似的东西:
for i in [5,35,64,100, 216]:
if i=5:
result5=df.loc[(df.sex=='M')&(df.category==i)].groupby(['location','category'])count()
它看起来也非常重复。
你能帮我一个简单的代码,可以迭代这个过程吗?非常感谢!
答案
首先按Series.isin
过滤数据,然后使用GroupBy.size
汇总所有3列:
L = [5,35,64,100, 216]
df1 = (df[df.location.isin(L)]
.groupby(['location','sex','category'])
.size()
.reset_index(name='count'))
以上是关于pandas.groupby中的迭代的主要内容,如果未能解决你的问题,请参考以下文章