首页 > 解决方案 > 我有数据中的前 3 个最大值,我需要找到它发生的年份

问题描述

这是数据

'''
Year,America,Asia,Europe,Oceania,Africa,European Union,,,
1995,26233.5,50863.1,17311.4,3019.1,1045.6,16533.2,,,
1996,27906.7,53824.3,17835.1,3093.8,928.9,17011.4,,,
1997,29192.7,55016.1,19381,2997.8,947.6,18789.1,,,
1998,30407.5,50197.3,21386.8,2938.3,987.7,20875.6,,,
1999,31517.7,56987.4,22748.6,3979,1092.3,22289.8,,,
2000,33185.2,73466.9,22519.8,5001.8,1764.4,21868.6,,,
2001,26015.3,66382,19921.3,4859.3,1266.5,19233.2,,  ,
2002,26942.1,67224.1,18503.2,5323.4,1444.7,17916.9,,,
'''

我已经从用户选择的区域中找到了前三个值,现在我需要找到三个最大值发生的年份

'''
def dispMaxThree(df):
    print("="*40)
    print("Please choose an area.")
    print("America")
    print("Asia")
    print("Europe")
    print("Oceania")
    print("Africa")
    print("European Union")
    print("="*40)
    sel=input("Please select area: ") 
    max_three=df[sel].nlargest(3)
'''

标签: pandasdataframe

解决方案


转换Year为索引,然后选择Series被调用的索引值max_three

sel=input("Please select area: ") 

df = df.set_index('Year')
max_three=df[sel].nlargest(3)

max_three_Year=max_three.index

推荐阅读