我对Python还是个新手,所以如果这个问题以前有人回答过或者很容易解决,请原谅我。我有一个很长的数据框架,其中包含数值变量和分类变量。它看起来像这样:
Category Detail Gender Weight
Food Apple Female 30
Food Apple Male 40
Beverage Milk Female 10
Beverage Milk Male 5
Beverage Milk Male 20
Food Banana Female 50
我想做的是:按类别和细节分组,然后计算所有“女性”和“男性”的示例。然后我想给这些示例加权(见“权重”列)。这应该通过从“权重”列中取值,然后除以总权重来完成。(因此,对于该组:饮料、牛奶、男性,这将是25除以35)。如果有性别的份额也会很好。在一天结束时,我希望我的数据框看起来像这样:
Category Detail Female Male
Beverage Milk 29% 71%
Food Apple 43% 57%
Food Banana 100% 0%
除了分组之外,我还想通过将“女性”和“男性”作为新列添加到数据框中来“解融”数据框。
我可以用groupby对不同级别的权重求和,但如何通过添加这些新列来重塑数据框架呢?
有什么办法可以做到这一点吗?提前感谢您的帮助!
2条答案
按热度按时间r7knjye21#
将
DataFrame.pivot_table
用于除以求和值,最后乘以100
和round
:对于百分比用途:
v8wbuo2f2#
像这样
第一个