簡體   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