如何在Pandas Series中获取对应的索引(国家名称)?
解决Pandas Series按位置获取国家名称的问题
你的代码逻辑和预期完全相反:你把国家名称设成了Series的索引,把数字1-32设成了对应的值,而你原本想要的是「以0、1、2...为索引,国家名称为对应值」。这就是为什么你用dict_country_fifa[1]会取出数字2,而不是目标国家名称。
给你两种解决办法:
办法1:重新创建符合需求的Series
直接把国家列表作为Series的值,让Pandas自动生成0起始的整数索引:
import pandas as pd # 国家列表 countries = ["Qatar","Ecuador","Senegal","Netherlands","Argentina","Saudi Arabia","Mexico","Poland","Spain","Costa Rica","Germany","Japan","Brazil","Serbia","Switzerland","Cameroon","England","Iran","USA","Wales","France","Australia","Denmark","Tunisia","Belgium","Canada","Morroco","Croatia","Portugal","Ghana","Uruguay","South Korea"] # 创建Series,自动生成0-31的整数索引 dict_country_fifa = pd.Series(countries) # 取索引1对应的国家 print(dict_country_fifa[1]) # 输出:Ecuador
办法2:基于现有Series直接获取国家名称
如果不想修改原始代码,可以通过以下两种方式按位置提取国家名称:
- 用
iloc定位元素后取索引名:
# 获取位置1对应的国家名称 print(dict_country_fifa.iloc[1].name) # 输出:Ecuador
- 把索引转为列表后按位置访问:
# 将索引转为列表,直接按位置取值 country_names = dict_country_fifa.index.tolist() print(country_names[3]) # 输出:Netherlands
内容的提问来源于stack exchange,提问作者Coder434
相关产品推荐
相关产品推荐

