繁体   English   中英

如何将列中的每个值除以该列子集的最大值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM