How To Add Calculated % To A Pandas Pivottable
I have a pivottable similiar to this question, which doesn't seem to have an answer. I have a pivottable called grouped like this: grouped = age_gender_bkts.pivot_table('populatio
Solution 1:
You can use groupby
, transform
and sum
. Last you can merge
data to original DataFrame
:
print age_gender_bkts
age_bucket country_destination gender population_in_thousands year
0 100+ AU male 1 2015
1 95-99 AU male 9 2015
2 90-94 CA male 47 2015
3 85-89 CA male 118 2015
4 80-84 AU male 199 2015
5 75-79 NL male 298 2015
6 70-74 NL male 415 2015
7 65-69 AU male 574 2015
8 60-64 AU male 636 2015
9 55-59 AU male 714 2015
grouped = age_gender_bkts.pivot_table('population_in_thousands',index='gender', columns='country_destination', aggfunc='sum').unstack()
df = (grouped / grouped.groupby(level=0).transform(sum)).reset_index().rename(columns={0:'prop'})
print df
country_destination gender prop
0 AU male 1
1 CA male 1
2 NL male 1
print pd.merge(age_gender_bkts, df, on=['country_destination', 'gender'])
age_bucket country_destination gender population_in_thousands year prop
0 100+ AU male 1 2015 1
1 95-99 AU male 9 2015 1
2 80-84 AU male 199 2015 1
3 65-69 AU male 574 2015 1
4 60-64 AU male 636 2015 1
5 55-59 AU male 714 2015 1
6 90-94 CA male 47 2015 1
7 85-89 CA male 118 2015 1
8 75-79 NL male 298 2015 1
9 70-74 NL male 415 2015 1
Post a Comment for "How To Add Calculated % To A Pandas Pivottable"