我最近才开始使用Plotly,并决定让“世界合唱地图”试一试,因为它看起来很简单。我使用的数据集在列中有两位数的国家代码,该列指定被申请人来自哪个国家(例如,巴西为BR,德国为DE,我认为这也称为ISO 3166-1 alpha-2码 )。当我第一次设法运行该文件并将其加载到web浏览器中时,屏幕上没有出现任何地图,这让我感到非常困惑。我查看了示例csv并注意到它使用三位国家代码 (例如,意大利的ITA或瑞典的SWE,它们被称为ISO 3166-1 alpha 3码)。我做了一个小测试集,把三位数的代码应用到我的数据集和地图上,把我输入的所有数据都放在我指定的正确国家内。这让我相信,在默认情况下,choropleth会在数据中查找三位数的国家代码,以便知道数据在地图上的位置。
在我设置一个循环遍历我们接收到的数据并将所有代码从2个字母格式更改为3个字母格式之前,我想知道在中是否有一种简单的方法可以让您指定您想要的国家代码类型?
发布于 2017-07-03 23:51:00
检查下面的链接,得到从2个字母到3个字母的映射。
list.htm
Countrylet 2let 3let
Afghanistan AF AFG
Aland Islands AX ALA dfcountry = pd.read_csv('countryMap.txt',sep='\t') # mapping of 2 letter to 3 letter Country min avg max
AD 5251 5251 5251dfData = pd.read_csv('myData.txt',sep='\t') # My Source data
df = dfData.merge(dfcountry,how='inner',left_on=['Country'],right_on=['2let'])现在您可以使用3 Char国家代码。我当时在时间线下所以就采取了一条捷径。希望这能有所帮助。
发布于 2020-05-26 21:35:24
或者您可以使用pycountry-convert包https://pypi.org/project/pycountry-convert/
from pycountry_convert import country_alpha2_to_country_name, country_name_to_country_alpha3
data['country_alpha_3'] = data.country_alpha_2.apply(lambda x: country_name_to_country_alpha3(country_alpha2_to_country_name(x)))https://stackoverflow.com/questions/38523559
复制相似问题