使用 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
我有列表 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