簡體   English   中英

計算總熊貓列百分比的最佳方法

[英]Best Way to Calculate Column Percentage of Total Pandas

說我有以下數據框:

>>> df=pd.DataFrame([[150,90,60],[200,190,10],[400,150,250]], columns=['Total','Group1','Group2'])
>>> df
   Total  Group1  Group2
0    150      90      60
1    200     190      10
2    400     150     250
>>> 

如您所見,組1和組2總計為總計(在人口普查數據中考慮年齡類別)。 我想計算每個組中的百分比。

現在,我正在執行以下操作:

>>> df2=df.copy()
>>> for Group in ['Group1','Group2']:
...     df2[Group]=df[Group]/df['Total']*100
... 
>>> 
>>> df2
   Total  Group1  Group2
0    150    60.0    40.0
1    200    95.0     5.0
2    400    37.5    62.5
>>> 

但是,我確定沒有for循環就可以做到這一點。 也許使用applymap或map? 有人可以告訴我更有效的計算方法嗎?

您可以如下划分:

>>> df.div(df.Total.values, axis=0)
   Total  Group1  Group2
0      1   0.600   0.400
1      1   0.950   0.050
2      1   0.375   0.625

我不建議混合使用值和百分比,但是如果您確實願意,可以重新分配Total

df2 = df.div(df.Total.values, axis=0)
df2['Total'] = df.Total
>>> print df.drop('Total', axis=1).divide(df.Total, axis=0)
   Group1  Group2
0   0.600   0.400
1   0.950   0.050

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM