如何解决如何获取249个国家的DataFrame?
如何在数据框中存储国家/地区名称
import pandas as pd
import pycountry
countries = pd.DataFrame()
for i in list(pycountry.countries):
i=dict(i)
print(i)
countries['alpha_3'] = i['alpha_3']
countries['name'] = i['name']
countries['original_name'] = i['original_name']
print(countries.head())
错误 : TypeError: 'Country' 对象不可迭代
感谢提前解决!
解决方法
original_name
对象中没有属性 Country
。
data = [[country.alpha_3,country.name] for country in pycountry.countries]
countries = pd.DataFrame(data,columns=['alpha_3','name'])
# print(countries.head())
alpha_3 name
0 ABW Aruba
1 AFG Afghanistan
2 AGO Angola
3 AIA Anguilla
4 ALA Åland Islands
你也可以像这样创建
df = pd.DataFrame([country.__dict__['_fields'] for country in pycountry.countries])
print(df.head())
alpha_2 alpha_3 name numeric official_name common_name
0 AW ABW Aruba 533 NaN NaN
1 AF AFG Afghanistan 004 Islamic Republic of Afghanistan NaN
2 AO AGO Angola 024 Republic of Angola NaN
3 AI AIA Anguilla 660 NaN NaN
4 AX ALA Åland Islands 248 NaN NaN
然后使用 df.loc[['alpha_2','alpha_3']]
选择列。
pycountry.countries
中列出的所有县都没有 official_name
属性。
对于这些国家/地区,我们可以在 None
列中设置 official_name
。
import pandas as pd
import pycountry
countries = pd.DataFrame()
data = []
for country in pycountry.countries:
try:
current = {'alpha_3': country.alpha_3,'name': country.name,'official_name': country.official_name}
except Exception as ex:
current = {'alpha_3': country.alpha_3,'official_name': None}
data.append(current)
countries = pd.DataFrame(data,columns = ['alpha_3','name','official_name'])
print(countries.head())
输出:
alpha_3 name official_name
0 ABW Aruba None
1 AFG Afghanistan Islamic Republic of Afghanistan
2 AGO Angola Republic of Angola
3 AIA Anguilla None
4 ALA Åland Islands None
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。