pandas - 我有数据中的前 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)
'''
解决方案
转换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
推荐阅读
- unity3d - 如何检测点击了哪个游戏对象
- html - Beautiful Soup HTML 解析异常
- azure - Azure Logic Apps Enterprise Integration Pack Visual Studio 2015 问题
- gnuplot - 在我为 y 数据设置 timefmt 后,xtic() 没有为每个条设置标签
- angular - Angular 8 Fotorama 未在底部显示预览图像
- python - 如何在没有互联网的服务器上安装 wfastcgi?
- php - 找到数字后如何获取字符串的剩余部分
- c# - Unity:场景中的游戏对象增量加载而不是同时加载
- nativescript - 如何在 nativeScript 中捕获滚动偏移 RadListVIew?
- c# - 有没有办法让比较更短