0

下面的代码是我如何尝试从多个列中找出最高值的示例,然后使用 pandas 将最高值放入新创建的列中。

def Alphabet (row):
    AlpFields = ["A", "B", "C", "D", "E", "F"]
    Alp = len(AlpFields)
    AlpCheck = row[:Alp]
    MaxValue = max(AlpCheck)
    if MaxValue == 0:
        return MaxValue, ""
    return MaxValue , AlpFields[AlpCheck.index(MaxValue)]
df.apply(lambda row: Alphabet(row), axis =1)
df['HighestAlphabetScore'] = df.apply(lambda row: Alphabet(row), axis =1)

在这种情况下,我试图找出列中的最高值:A、B、C、D、E 和 F,然后将此值放在新创建的列“最高字母分数”中。

但是,当我运行代码时,会出现以下错误:

TypeError: ("'Index' object is not callable", u'发生在索引 0')

我尝试了各种不同的方法来尝试解决这个问题,但到目前为止没有任何效果。对我可能做错的任何帮助/关于如何解决此错误的任何建议将不胜感激。

4

1 回答 1

1

对于您的数据框df,您可以调用max列轴的函数并将结果分配给新列。

假设您只需要特定列中的最大值,那么代码将是

df['HighestAlphabetScore'] = df[["A", "B", "C", "D", "E", "F"]].max(axis=1)
于 2019-11-11T16:58:23.567 回答