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