如何获取在特定行中具有最大值的列名?

时间:2020-10-09 15:58:03

标签: python pandas dataframe

我需要获取特定行具有最大值的列名。

    a   b   c
0   2   2   1
1   1   5   5
2   1   1   5
3   1   1   3
4   5   4   1
5   5   2   5

我希望在index = 2中进行搜索时会得到列c,而在index = 4中进行搜索时会得到列a。

我尝试了this solution,但是没有用。 在我的真实df中,当我使用df.info()检查时,它表明Dtype是对象而不是数字。

2 个答案:

答案 0 :(得分:0)

我通过将Dtype从对象转换为 float

找到了解决方案

Find the column name which has the maximum value for each row

然后我申请了

Find the column name which has the maximum value for each row

答案 1 :(得分:0)

您写道 dtype object ,但另一方面,您的数据 样本仅包含 个整数,我认为它是一个代表 样本。

所以第一步是将 dtype 更改为 int

df = df.astype(int)

然后使用以下功能:

def maxColName(df, ind):
    return df.loc[ind].idxmax()

或者您可以删除 df 参数并将此名称用作全局变量:

def maxColName(ind):
    return df.loc[ind].idxmax()