获取表中一行中最大值的标题值

2024-04-24 15:20:31 发布

您现在位置:Python中文网/ 问答频道 /正文

所以,我有这样一个数据:

0.0   25.0   50.0 
12.3  3.45   9.34 
4.97  6.81   5.61  
9.14  4.62   10.3   

我需要从行中获取最大值(我可以使用测向最大值()),但是,我在列中需要的结果是标题值。你知道吗

结果如下:

0.0   25.0   50.0   res
12.3  3.45   9.34   0.0
4.97  6.81   5.61   25.0
9.14  4.62   10.3   50.0

我怎样才能在熊猫身上做到这一点?你知道吗


Tags: 数据标题res
2条回答

使用NumPy的一种方法:

df['res'] = df.columns[df.values.argmax(1)]

索引1d数组(在本例中为列)通常是有效的:

df = pd.concat([df]*10**4, ignore_index=True)

%timeit df.columns[df.values.argmax(1)]  # 914 µs per loop
%timeit df.idxmax(axis=1)                # 47.5 ms per loop

使用idxmax

df['New']=df.idxmax(axis=1)
df
Out[979]: 
     0.0  25.0   50.0   New
0  12.30  3.45   9.34   0.0
1   4.97  6.81   5.61  25.0
2   9.14  4.62  10.30  50.0

相关问题 更多 >