【问题标题】:In python: How can I extract the maximum value in the third column , and return the value in fourth column?在python中:如何提取第三列中的最大值,并返回第四列中的值?
【发布时间】:2019-01-02 23:20:05
【问题描述】:

我有这样的数据:

    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。

【问题讨论】:

  • 请显示您尝试过的内容。
  • 上述数据是如何存储以及存储在哪里的?
  • 这实际上是上一步的输出,我尝试以这种方式存储它:['0 1 251 TrCP', '0 2 68 TrCP',...] 但不知道接下来如何处理它,所以我实际上不知道如何保存它以供进一步的步骤

标签: python nlp


【解决方案1】:

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

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()返回最大值的索引。然后我们可以在我们的其他数组/向量/列表/等中访问该索引。多多!

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

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

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

【讨论】:

  • 感谢帮助,只是我的第一列值不同,所以当第一列值为'0'时,我需要找到最大值,当第一列值为' 1',我需要再次找到最大值,所以对第一列中的所有不同数字进行操作
  • 不知道我的解释是否正确,对不起
  • 你在用熊猫吗?如果你是这样的话,事情会变得更容易:P
猜你喜欢
  • 2016-07-26
  • 2018-04-14
  • 2021-09-18
  • 1970-01-01
  • 2018-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-24
相关资源
最近更新 更多