2016-06-03 5 views
2

Kann mir jemand mit der (möglichen) Gruppe in Pandas helfen. HierPandas - Get Wert als Häufigkeit in groupby

ist die df:

easy_donor v_fam count 
0 donor_1_NS IGHV1 5202376 
1 donor_1_NS IGHV2 1955547 
2 donor_1_NS IGHV3 70426272 
3 donor_1_NS IGHV4 452367 
4 donor_1_NS IGHV5 4842145 
5 donor_1_NS IGHV6 490142 
6 donor_1_NS IGHV7 19708 
24 donor_2_NS IGHV1 31258603 
25 donor_2_NS IGHV2 5295899 
26 donor_2_NS IGHV3 47286417 
27 donor_2_NS IGHV4 44553802 

Dann möchte ich jede Zählung als eine Frequenz der Summe der von den Geber gruppiert zählt.

Like:

df.groupby('easy_donor').sum()['count'] 
easy_donor 
donor_1_NS  83394639 
donor_2_NS 129191591 
donor_3_HS 220549762 
donor_3_NS 104821016 
donor_4_HS 200444923 
donor_4_NS 121287306 

Dann jede Zählung in dem ursprünglichen Datenrahmen durch die groupby Summe geteilt, wenn sie die easy_donor Spalte entsprechen. Muss ich am originalen Datenrahmen teilnehmen?

Antwort

5

Versuchen:

df.groupby('easy_donor')["count"].apply(lambda x: x/x.sum())