熊猫-在过滤的数据帧上应用聚合

时间:2019-07-30 20:12:46

标签: python pandas

按一列分组,并根据过滤后的值汇总其中一列。

就像下面的示例一样,我想为每种“种类”的动物计算性别为“雄性”的动物的数量

import pandas as pd
df = pd.DataFrame({'kind': ['cat', 'dog', 'cat', 'dog'],
                'height': [9.1, 6.0, 9.5, 34.0],
                'gender': ['male', 'female', 'female', 'female']})
df.groupby('kind').agg({'height': 'min', 'gender': lambda g: (g == 'male').count()})

我得到的输出(这是错误的)

kind      height     gender
cat       9.1        2
dog       6.0        2

预期输出:

kind      height     gender
cat       9.1        1
dog       6.0        0

1 个答案:

答案 0 :(得分:5)

您可以使用sum()代替count()。

df.groupby('kind').agg({'height': 'min', 'gender': lambda g: (g == 'male').sum()})