首頁 >後端開發 >Python教學 >如何使用 Pandas Groupby 計算每個州內每個辦公室的銷售額百分比?

如何使用 Pandas Groupby 計算每個州內每個辦公室的銷售額百分比?

Barbara Streisand
Barbara Streisand原創
2024-12-09 06:40:08596瀏覽

How to Calculate the Percentage of Sales per Office within Each State Using Pandas Groupby?

Pandas Groupby 佔總數的百分比

可以使用 Pandas 的 groupby 計算給定州每個辦公室的銷售額百分比。但是,它需要額外的步驟才能達到所需的結果。

假設我們有一個 CSV 文件,其中包含代表州、辦公室 ID 和銷售額的欄位。我們可以導入 Pandas 並創建一個DataFrame:

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)]})

要計算每個辦事處和州的總銷售額,我們可以按這些列進行分組:

state_office = df.groupby(['state', 'office_id']).agg({'sales': 'sum'})

要計算百分比給定州每個辦事處的銷售額,我們可以按州分組並應用一個函數,將每個辦公室的銷售額除以總州sales:

state_pcts = state_office.groupby(level=0).apply(lambda x:
                                                 100 * x / float(x.sum()))

這會產生一個包含每個辦公室銷售百分比的DataFrame:

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn