Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python计算groupby之后的份额_Python_Pandas_Pandas Groupby_Aggregation_Percentage - Fatal编程技术网

Python计算groupby之后的份额

Python计算groupby之后的份额,python,pandas,pandas-groupby,aggregation,percentage,Python,Pandas,Pandas Groupby,Aggregation,Percentage,我想按postalcodes对以下数据集类型进行分组,并计算每个发货方法在每个postalcode中的已完成订单份额。 我已经实现了一个csv文件,并尝试了下面的代码,但我意识到我需要多索引来实现它——因为我有很多不同的postalcodes,我不知道如何使用它 后酒精 装运方法 已完成的订单 12345 邮政1 1. 12345 邮政2 3. 12345 邮政3 2. 11123 邮政1 1. 11123 邮政2 2. 像这样 result = df['completed_orders'] /

我想按postalcodes对以下数据集类型进行分组,并计算每个发货方法在每个postalcode中的已完成订单份额。 我已经实现了一个csv文件,并尝试了下面的代码,但我意识到我需要多索引来实现它——因为我有很多不同的postalcodes,我不知道如何使用它

后酒精 装运方法 已完成的订单 12345 邮政1 1. 12345 邮政2 3. 12345 邮政3 2. 11123 邮政1 1. 11123 邮政2 2. 像这样

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()))


资料来源:

哇,我自己真的把事情弄复杂了。谢谢!不客气@SevgiCamuz!如果您觉得答案有用,请向上投票:)Def!:)您知道为什么“已完成订单份额”列的名称不显示吗?