groupby之后的使用条件

时间:2019-12-17 21:54:11

标签: python pandas pandas-groupby

我有一个熊猫数据框df

import pandas

df = pandas.DataFrame(
    data=[["A", "Man"], ["A", "Woman"], ["A", "Man"], ["A", "Man"], ["B", "Woman"]],
    columns=["category", "gender"],
)

df
  category gender
0        A    Man
1        A  Woman
2        A    Man
3        A    Man
4        B  Woman

我算出每个类别中有多少男人

grouped = df.groupby(by=["category", "gender"])["gender"].count()

grouped
category  gender
A         Man       3
          Woman     1
B         Woman     1
Name: gender, dtype: int64

我如何获得男女均超过1的类别列表?

category_list = [A]

2 个答案:

答案 0 :(得分:2)

IIUC,

s = df.groupby('category')['gender'].value_counts().unstack(fill_value=0)

s[s.ge(1).all(1)]

给你

gender    Man  Woman
category            
A           3      1

答案 1 :(得分:1)

您可以将结果转换为数据框,然后应用查询过滤器:

pandas.DataFrame(grouped).query("gender > 1")

                    gender
category    gender  
A              Man       3

或者您可以直接这样做:

grouped[grouped > 1]