我在Stackexchange上一直在浏览不同的问题,但还没有弄清楚如何在Pandas中做我需要的东西。我认为这最终会非常简单!
我正在执行一项任务,其中数据集包含大量产品,并且每个产品对于它所在的每个商店都有一行。因此,产品A将有各自的食品线,药店,Target,沃尔玛,然后,它的可用性和该出口的重要性成倍增加,我需要将该结果重新百分比等于100%。
现在我在Excel / Google表格中手动完成,但这很烦人且乏味。我可以通过使用Groupby告诉如何获得每个产品列E的总和,但我无法弄清楚如何为每个产品显示该数字,以便E列中的每个数字都可以分成它。
答案 0 :(得分:0)
要获得要显示的每件商品的总和.transform('sum')
在一行中:
df['Repercentaged'] = df.groupby('Product').Multiplied.transform(lambda x: x/x.sum())
但是如果你想保留Sum Column ......
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']