使用python pandas中的索引查找第二大元素



我有列表A = [China, India, France, Italy]和列表B = [2000, 3000, 3500, 1000]

我使用的代码:

B_desc = sorted(B, reverse=True)
max_B = max(B_desc)
idx_max = B.index(max_B)
first_country = A[idx_max] 

查找值最大的国家,但不确定如何使用索引查找值第二大的国家。是否可以循环查找4个或更多具有最大值的国家?

这是有效的,但如果len(A(!=len(B(

A = 'China, India, France, Italy'.split(', ')
B = [2000, 3000, 3500, 1000]
C = {a:B[i] for i,a in enumerate(A)}
sort = sorted(C.keys(),key=C.get,reverse=True)
first = sort[0]
second = sort[1]
# etc

您最好使用zip来构建对,然后对int值进行反向排序

A = ["China", "India", "France", "Italy"]
B = [2000, 3000, 3500, 1000]
values = sorted(zip(A, B), key=lambda x: x[1], reverse=True)
>>print("Max pair", values[0])
Max pair ('France', 3500)
>>print("Second max pair", values[1])
Second max pair ('India', 3000)

相关内容

  • 没有找到相关文章

最新更新