在整个数据框中查找最大值和相应的列/索引名称

时间:2016-11-13 01:19:10

标签: python pandas dataframe max

我想在数据框中选择最大值,然后找出该值的索引和列名。 有办法吗?

说,在下面的示例中,我想首先找到最大值(31),然后返回该值(20, R20D)

的索引和列名称
a = pd.DataFrame({'R05D':[1,2,3],'R10D':[7,4,3],'R20D':[31,2,4]},index=[20,25,30])

谢谢!

3 个答案:

答案 0 :(得分:6)

如果您致电a.max(axis=0),您会在每列上获得一系列最大值:

R05D     3
R10D     7
R20D    31
dtype: int64

如果您在该系列节目中致电max,那么您最多可以:

a.max(axis=0).max()
#31

为您提供最大值。类似地:

a.max(axis=0).idxmax()
#R20D

为您提供列名称和

a.max(axis=1).idxmax()
#20

会给你一行。

答案 1 :(得分:4)

将您的数据框转换为MultipleIndex系列,并使用argmaxidxmax函数询问最大元素的索引:

coord = a.stack().argmax()
coord
(20, 'R20D')

要获取值,请使用loc的坐标:

df.loc[coord]
31

答案 2 :(得分:1)

由于我无法用有限的声誉发表评论,因此这是@Boud答案的一个额外答案:argmax()不适用于我,但是使用idxmax()解决了问题并返回(20, "R20D")

的正确输出
coord = a.stack().idxmax()
coord
(20, 'R20D')