我已经在Stackexchange上浏览了不同的问题,但还没有想好如何在Pandas中做我需要的事情。我认为这最终会非常简单!
我正在做一个任务,其中一个数据集有一堆产品,每个产品在它所在的每个商店都有一行。因此,产品A将有单独的食品,药店,目标,沃尔玛等线。然后,它的可用性和该网点的重要性成倍增加,我需要将结果重新百分比等于100%。
现在我在Excel/Google工作表中手动操作,但这很烦人和乏味。我可以告诉如何使用Groupby获得每个产品E列的总和,但我不知道如何显示每个产品的数字,以便E列中的每个数字可以划分为E列。
发布于 2018-04-19 23:40:21
要获得要.transform('sum')的每个产品的总和,请执行以下操作
在一行代码中:
df['Repercentaged'] = df.groupby('Product').Multiplied.transform(lambda x: x/x.sum())但是如果你想保留Sum列..。
import pandas as pd
df['Sum'] = df.groupby('Product').Multiplied.transform('sum')
# Location Multiplied Product Sum
#0 Food 0.09 A 0.88
#1 Drugstore 0.21 A 0.88
#2 Walmart 0.35 A 0.88
#3 Target 0.23 A 0.88
#4 Food 0.13 B 0.73
#5 Drugstore 0.13 B 0.73
#6 Walmart 0.25 B 0.73
#7 Target 0.22 B 0.73
df['Repercentaged'] = df['Multiplied']/df['Sum']https://stackoverflow.com/questions/49924635
复制相似问题