在python中:如何提取第三列中的最大值,然后在第四列中返回该值?

时间:2019-01-02 23:20:05

标签: python nlp

我有这样的数据:

    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。

1 个答案:

答案 0 :(得分:0)

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

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确保您确实拉出了所需的索引,而不是标签不正确(例如,如果数据框的索引已编号并且您不希望访问该索引)。