【发布时间】:2022-01-08 11:23:37
【问题描述】:
我有一个这样的数据框:
Group Col A Col B
1 A1 B1
1 A2 B2
2 A3 B3
2 A4 B4
我想创建一个关于组的新列 Per A 和 Per B,所以结果应该是
Group Col A Col B Per A Per B
1 A1 B1 100*A1/(A1+A2) 100*B1/(B1+B2)
1 A2 B2 100*A2/(A1+A2) 100*B2/(B1+B2)
2 A3 B3 100*A3/(A3+A4) 100*B3/(B3+B4)
2 A4 B4 100*A4/(A3+A4) 100*B4/(B3+B4)
我需要一个一般情况,有几个组,每个组都有不同的组大小。
我尝试使用 for 循环,虽然我能够找到列,但我无法将它们分配给数据框。我不明白究竟是什么阻止了它。
例如,这是我要寻找的结果(注意我如何更改反映“不同组大小”的组列)
Group Col A Col B Per A Per B
1 1 2 100.0 100.0
2 1 2 16.67 25.00
2 2 2 33.33 25.00
2 3 4 50.00 50.00
【问题讨论】:
-
请提供实际数据,以及预期的输出数据框
标签: python pandas dataframe group-by