如何从Python Pandas中的几个数据点重新获得单元格?

时间:2018-04-19 15:17:42

标签: python pandas

我在Stackexchange上一直在浏览不同的问题,但还没有弄清楚如何在Pandas中做我需要的东西。我认为这最终会非常简单!

我正在执行一项任务,其中数据集包含大量产品,并且每个产品对于它所在的每个商店都有一行。因此,产品A将有各自的食品线,药店,Target,沃尔玛,然后,它的可用性和该出口的重要性成倍增加,我需要将该结果重新百分比等于100%。

现在我在Excel / Google表格中手动完成,但这很烦人且乏味。我可以通过使用Groupby告诉如何获得每个产品列E的总和,但我无法弄清楚如何为每个产品显示该数字,以便E列中的每个数字都可以分成它。

有人有建议吗?Link to example of what the dataset looks like

1 个答案:

答案 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']