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

pom*_*ome 7 python max dataframe pandas

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

比如,在下面的示例中,我想首先找到max value(31),然后返回该值的索引和列名(20, R20D)

a = pd.DataFrame({'R05D':[1,2,3],'R10D':[7,4,3],'R20D':[31,2,4]},index=[20,25,30])
Run Code Online (Sandbox Code Playgroud)

谢谢!

Rya*_*ker 8

如果你打电话给a.max(axis=0)你,每列上都会得到一系列最大值:

R05D     3
R10D     7
R20D    31
dtype: int64
Run Code Online (Sandbox Code Playgroud)

如果你打电话max给那个系列你会得到它最大值:

a.max(axis=0).max()
#31
Run Code Online (Sandbox Code Playgroud)

给你最大的价值.同理:

a.max(axis=0).idxmax()
#R20D
Run Code Online (Sandbox Code Playgroud)

为您提供列名称和

a.max(axis=1).idxmax()
#20
Run Code Online (Sandbox Code Playgroud)

会给你排.


Bou*_*oud 6

将您的数据框转换为MultipleIndex系列,然后使用argmaxidxmax函数请求max元素的索引:

coord = a.stack().argmax()
coord
(20, 'R20D')
Run Code Online (Sandbox Code Playgroud)

要获取值,请针对loc以下坐标使用坐标:

df.loc[coord]
31
Run Code Online (Sandbox Code Playgroud)