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

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

Linda Hamilton
Linda Hamilton原創
2024-12-12 19:19:14160瀏覽

How to Calculate the Percentage of Total Sales per Office Using Pandas Groupby?

使用Pandas Groupby 計算總銷售額的百分比

要計算給定州內每個辦公室的總銷售額百分比,您可以利用Pandas 的變革力量分組操作。讓我們深入了解細節。

考慮一個包含三列的 CSV 檔案:state、office_id 和 sales。若要依州和office_id 分組並彙總銷售額,您可以使用df.groupby(['state', 'office_id']).agg({'sales': 'sum'}).

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

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

此操作會產生一個分組的DataFrame,其中計算每個唯一(州、office_id)組合的銷售額總和。

確定總銷售額的百分比每個辦公室,您都可以實施以下策略:

變革方法

引入變革的變革力量!將其應用於銷售額列,然後除以每個州內的銷售額總和。

df['sales'] / df.groupby('state')['sales'].transform('sum')

此轉換會產生一個帶有百分比的DataFrame,列出每個辦公室的銷售額相對於各自州內總銷售額的比例.

多分組方法

或者,您可以根據每個分組中的銷售列建立一個新的分組物件(州,office_id)群組。然後除以新分組列的總和。

state_office = df.groupby(['state', 'office_id']).agg({'sales': 'sum'})
state_pcts = state_office.groupby(level=0).apply(lambda x:
                                                 100 * x / float(x.sum()))

這種方法為您提供了一個類似的帶有百分比值的 DataFrame,但它需要額外的分組等級。

兩種方法都有效計算每個辦公室對其各自州內總銷售額的貢獻百分比。透過了解這些技術,您可以從分組資料中釋放新的見解!

以上是如何使用 Pandas Groupby 計算每個辦公室的總銷售額百分比?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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