gpt4 book ai didi

python - 获取 Pandas 行中最大值的列索引

转载 作者:行者123 更新时间:2023-12-05 04:39:41 27 4
gpt4 key购买 nike

我不仅要查找数据框行中的最大值,还要查找具有该值的特定列。如果有多列具有该值,则返回所有列的列表或仅返回一列都可以。

在这种情况下,我特别关心对单个给定行执行此操作,但如果有可以应用于数据框的解决方案,那也很好。

以下是我的意思的粗略概念。 row.max() 返回最大值,但我想要的函数 row.max_col() 返回具有最大值的列的名称。

>>> import pandas as pd
>>> df = pd.DataFrame({"A": [1,2,3], "B": [4,5,6]})
>>> row = df.iloc[0]
>>> row.max()
4
>>> row.max_col()
Index(['B'], dtype='object')

我目前的做法是这样的:

>>> row.index[row.eq(row.max())]
Index(['B'], dtype='object')

我不熟悉 pandas 如何优化一切,所以如果我在这里错了,我深表歉意,但我假设 row.index[row.eq(...)] 呈线性增长时间与列数成正比。我正在处理少量的列,所以这应该不是一个大问题,但我很好奇是否有一种方法可以像我使用 .max() 一样获取列名 之后无需执行额外的工作来寻找相等的值。

最佳答案

使用idxmax :

>>> df
A B
0 1 4
1 2 5
2 3 6

>>> df.iloc[0].idxmax()
'B'

关于python - 获取 Pandas 行中最大值的列索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70404478/

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