2016-12-14 16 views
2

私はこのデータセットを持っています。私はセックスとクラスによってグループ化していますグループの男性のみをカウントする

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例外' セックスをreceivigています)?

答えて

3

locを使用すると、簡単な断面図が表示されます。

smokers.loc['male'].sum() 

か、xs

smokers.xs('male', level='sex').sum() 

をより明示的であるか、またはあなたがdata

data.query('sex == "male"').smoking.sum() 
から直接導き出すことができ
関連する問題