gpt4 book ai didi

python - 如何将多列中的最大值返回到 pandas df 中的新列

转载 作者:行者123 更新时间:2023-12-04 02:33:39 25 4
gpt4 key购买 nike

对不透明的问题名称表示歉意(不确定如何表达)。我有以下数据框:

import pandas as pd
import numpy as np

data = [['tom', 1,1,6,4],
['tom', 1,2,2,3],
['tom', 1,2,3,1],
['tom', 2,3,2,7],
['jim', 1,4,3,6],
['jim', 2,6,5,3]]

df = pd.DataFrame(data, columns = ['Name', 'Day','A','B','C'])
df = df.groupby(by=['Name','Day']).agg('sum').reset_index()
df

enter image description here

我想添加另一列,根据 A,B,C 的哪一列最高返回文本:

例如,如果 A 最高,我想要 Apple,如果 B 最高,我想要 Banana,并且 Carrot 如果 C 最高。所以在上面的例子中,4 列的值应该是:

New Col
Carrot
Apple
Banana
Carrot

任何帮助将不胜感激!谢谢

最佳答案

使用DataFrame.idxmax沿 axis=1Series.map :

dct = {'A': 'Apple', 'B': 'Banana', 'C': 'Carrot'}
df['New col'] = df[['A', 'B', 'C']].idxmax(axis=1).map(dct)

结果:

  Name  Day  A   B  C New col
0 jim 1 4 3 6 Carrot
1 jim 2 6 5 3 Apple
2 tom 1 5 11 8 Banana
3 tom 2 3 2 7 Carrot

关于python - 如何将多列中的最大值返回到 pandas df 中的新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62874419/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com