使用 python pandas 中的索引查找下一个最大元素

Find next largest element using index in 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 个或更多具有最大值的国家?

您最好使用 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)

这可行,但如果 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