我有这个数据集。
data = pd.DataFrame({'sex':['male','female','female','male'],
'class':[1,2,3,2],
'smoking':[12,22,33,9]
})
class sex smoking
0 1 male 12
1 2 female 22
2 3 female 33
3 2 male 9
我按性别和班级分组:
smokers = data.groupby(['sex','class'])['smoking'].agg(sum)
sex class
female 2 22
3 33
male 1 12
2 9
现在,我只想统计男性吸烟者。
我知道我可以做:
male_smokers = data[data['sex'] == 'male'].groupby(['sex','class'])['smoking'].agg(sum)
但我希望能够做到:
male_smokers = smokers[smokers['sex'] == 'male'].count()
那有可能吗?(现在我正在接收'keyError'sex)
最佳答案
使用loc
进行快速剖切。
smokers.loc['male'].sum()
或者您可以使用
xs
更明确smokers.xs('male', level='sex').sum()
或者您可以直接从
data
派生data.query('sex == "male"').smoking.sum()
关于python - 只计算一组中的男性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41147551/