Pandas 中Groupby 的總百分比
計算一個州內每個辦事處貢獻的銷售額百分比需要在Pandas 中採用細緻入微的方法。雖然簡單地按“state”和“office_id”分組可以為您提供每個辦公室的銷售額總和,但它不會提供該州內的百分比貢獻。
要實現此目的,您需要先建立一個 groupby基於「state」和「office_id」的物件。這將為您提供一個資料框,其銷售列包含每個辦公室-州組合的總銷售額:
state_office = df.groupby(['state', 'office_id']).agg({'sales': 'sum'})
要計算百分比,您可以將每個辦公室的銷售額除以該州的總銷售額。但是,要存取 groupby 中每個州的總銷售額,您需要基於 'state' 建立第二個 groupby 物件:
state_total = df.groupby('state').agg({'sales': 'sum'})
使用此對象,您可以透過以下方式增強 'state_office' groupby包含每個辦公室狀態組合的銷售百分比的新欄位:
state_pcts = state_office.groupby(level=0).apply(lambda x: 100 * x / float(state_total.loc[x.name]))
請注意,「groupby」中的「level=0」參數指的是原始groupby 對'state' 和'office_id ' 形成的多層索引的頂層。
這種方法確保每個辦公室的銷售百分比是透過引用各自州內的總銷售額來計算的.
以上是如何使用 Pandas 計算每個州每個辦公室的銷售額百分比?的詳細內容。更多資訊請關注PHP中文網其他相關文章!