在python中:如何提取第三列中的最大值,并返回第四列中的值



我有这样的数据:

    0 1 251 TrCP
    0 2 68 TrCP
    0 3 61 TrCP
    0 4 69 TrCP
    0 5 70 TrCP
    0 6 75 TrCP
    0 7 63 TrCP
    0 8 57 TrCP
    0 9 96 TrCP
    0 10 266 TrCP
    ........
    0 2827 62 TrNAP
    1 1 67 TrCP
    1 2 84 TrCP
    1 3 159 TrCP
    1 4 121 TrCP
    1 5 80 TrCP
    1 6 68 TrCP
    1 7 148 TrCP
    1 8 78 TrCP
    1 9 71 TrCP
    1 10 67 TrCP
    ........
    1 2827 76 TrNAP
    .
    .
    .
    2828 1 62 TrCP

在第一列中,我有 0 - 2828 之间的数字。对于 0-2828 中的每个数字我想根据第三列中的值提取最后一列(例如 TrCP)。例如,在第一列='0'中,第三列中的最大值为'266',我想返回输出:TrCP。

我不知道

您的数据是如何存储的,但最普遍的解决方案如下:

my_array= [251, 68, 61, 69, 70, 75...]
whoa_a_wild_array = ['TrCP','TrCP','TrCP','TrCP',...]
whoa_a_wild_array[np.argmax(x)]

此处np.argmax()返回最大值的索引。然后,我们可以在其他数组/向量/列表/等中访问该索引。

如果您使用的是熊猫,则代码非常相似:

df['4th_column'].values[df['3rd_column'].argmax()]]

.values确保您实际提取所需的索引,而不是排序错误的标签(即,如果数据帧的索引已编号并且您不希望访问该索引)。