我有一个熊猫数据框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]
答案 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]