我有这样的数据:
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
确保您实际提取所需的索引,而不是排序错误的标签(即,如果数据帧的索引已编号并且您不希望访问该索引)。