获取熊猫行中最大值的标题值

时间:2019-01-31 16:31:49

标签: python pandas

所以,我有这样的数据:

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

我需要从行中获取最大值(我可以使用df.max()获得),但是,我在列中需要的结果是标题值。

结果如下:

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

我如何能做到这一点的熊猫?

2 个答案:

答案 0 :(得分:3)

使用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

答案 1 :(得分:2)

使用NumPy的一种方法:

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

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

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