
Pandas Groupby 佔總數的百分比
可以使用 Pandas 的 groupby 計算給定州每個辦公室的銷售額百分比。但是,它需要額外的步驟才能達到所需的結果。
假設我們有一個 CSV 文件,其中包含代表州、辦公室 ID 和銷售額的欄位。我們可以導入 Pandas 並創建一個DataFrame:
1 2 3 4 5 6 | import pandas as pd
df = pd.DataFrame({ 'state' : [ 'CA' , 'WA' , 'CO' , 'AZ' ] * 3,
'office_id' : list(range(1, 7)) * 2,
'sales' : [np.random.randint(100000, 999999)
for _ in range(12)]})
|
登入後複製
要計算每個辦事處和州的總銷售額,我們可以按這些列進行分組:
1 | state_office = df.groupby([ 'state' , 'office_id' ]).agg({ 'sales' : 'sum' })
|
登入後複製
要計算百分比給定州每個辦事處的銷售額,我們可以按州分組並應用一個函數,將每個辦公室的銷售額除以總州sales:
1 2 | state_pcts = state_office.groupby(level=0).apply(lambda x:
100 * x / float(x.sum()))
|
登入後複製
這會產生一個包含每個辦公室銷售百分比的DataFrame:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | print (state_pcts)
sales
state office_id
AZ 2 16.981365
4 19.250033
6 63.768601
CA 1 19.331879
3 33.858747
5 46.809373
CO 1 36.851857
3 19.874290
5 43.273852
WA 2 34.707233
4 35.511259
6 29.781508
|
登入後複製
此方法透過「有效計算給定州每個辦事處的銷售百分比」達到」到分組的州級別,以合計整個州的銷售額。
以上是如何使用 Pandas Groupby 計算每個州內每個辦公室的銷售額百分比?的詳細內容。更多資訊請關注PHP中文網其他相關文章!