![](/img/trans.png)
[英]How to sum all values in each column and divide each column by the summed value
[英]How to divide each value in column by the maximum value of a subset of that column
我试图将列中的每一行除以列中子列表的最大值,如果列由类别变量过滤,则子列表
是否有创建 col3 的单线向量方程? 我一直在尝试将 groupby 与 transform(lambda x: x...) 一起使用,但似乎无法获得 maxif 的效果,它只采用 col2 的最大值,其中 col1 = 与中的行具有相同类别的行col2 被分割。
示例输入代码:
import pandas as pd
data = {'col1':['A', 'A', 'B', 'B'],
'col2':[1, 2, 3, 4]}
df = pd.DataFrame(data)
df
所需的 output:
col1 |
col2 |
col3 |
explanation |
---|---|---|---|
A |
1 |
0.5 |
eg 1/2 |
A |
2 |
1 |
eg 2/2 |
B |
3 |
0.75 |
eg 3/4 |
B |
4 |
1 |
eg 4/4 |
当然:
>>> df['col2'] / df.groupby('col1')['col2'].transform(max)
0 0.50
1 1.00
2 0.75
3 1.00
然后您可以将该结果分配给您选择的新列。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.