How to find percentage in dataframe?

Viewed 69
maleWomanSurvey = survey[(survey.Gender == 'Man') | (survey.Gender == 'Woman')]
maleWomanSurvey[maleWomanSurvey.Occupation == 'Currently not employed'].groupby('Gender').size()*100/maleWomanSurvey.groupby('Gender').size()

I want to find percentage of currently not employed males and females in my data. How can I do this more easily? When I use group by twice, I feel like I'm doing code duplication.

1 Answers

Idea is use sum for count Trues per Gender, so first convert Gender to index and then use cum per level=0, here per Gender:

survey = survey.set_index('Gender')
m1 = (survey.Gender == 'Man') | (survey.Gender == 'Woman')
m2 = survey.Occupation == 'Currently not employed'

(m1 & m2).sum(level=0)*100/m1.sum(level=0)
Related