簡體   English   中英

Python pandas 計算后groupby的份額

[英]Python pandas calculate share of after groupby

我想按郵政編碼對以下類型的數據集進行分組,並計算每種運輸方式在每個郵政編碼中的已完成訂單份額。 我已經實現了一個 csv 文件並嘗試了下面的代碼,但我意識到我需要 MultiIndex - 因為我有很多不同的郵政編碼,所以我不確定如何使用它來 go。

郵政編碼 郵寄方式 完成訂單
12345 post1 1
12345 post2 3
12345 post3 2
11123 post1 1
11123 post2 2
import numpy as np
import pandas as pd

shipping_data = pd.read_csv("shipping_per_postalcode.csv")

shareof = lambda x: x/x.sum()
result = shipping_data['amount_users_completed'].groupby(level=['postalcode', 'shipping_option']).transform(sumto)
print(result)

像這樣?

result = df['completed_orders'] / df.groupby(['postalcode'])['completed_orders'].transform(sum)

# Out[43]:
# 0    0.166667
# 1    0.500000
# 2    0.333333
# 3    0.333333
# 4    0.666667
# Name: completed_orders, dtype: float64

您可能需要額外的 groupby 才能獲得百分比貢獻

df_agg=df_1.groupby(['postalcode', 'shipping_method'])['completed_orders'].sum()

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

在此處輸入圖像描述

來源: Pandas 與 groupby 的總百分比

暫無
暫無

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

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