将两列转换为Python字典的简单方法

2 投票
3 回答
4096 浏览
提问于 2025-04-17 05:28

我想知道怎么把以下信息放进一个Python字典里,字典的键是国家名,值是两个字符的ISO代码。你可以在这个链接找到相关信息:http://userpage.chemie.fu-berlin.de/diverse/doc/ISO_3166.html

举个例子,我希望得到的结果是:

mapping_of_country_to_iso = {'AALAND ISLANDS':'AX','AFGHANISTAN':'AF',...} 

相关问题:

3 个回答

0

如果我理解你的问题没错的话,我觉得 df.to_dict() 这个函数会对你很有帮助。

假设你的国家信息数据框叫做 df,首先(如果还没有的话),把 'Country' 设置为索引。接下来,使用 .to_dict() 函数。代码应该是这样的:

df = df.set_index('Country')
dict = df.to_dict('series')

'series' 只是组织字典的一种方式。我建议你去看看 pandas 的文档,了解一下 .to_dict(),因为这个命令有好几种用法。

3

如果你使用的是python2.7或更高版本,你可以使用字典推导式。

{k:v for k,v in list_of_tuples}

这里面的每个元组的格式是 ("AALAND ISLANDS", "AX")。这个方法比较通用,但可能在你的情况下并不需要。

对于旧版本的python,你可以直接用一个元组列表作为参数来调用字典构造函数。

dict(list_of_tuples)

这样你就能得到你想要的结果。

2

我只是把重要的数据复制粘贴到一个叫做'countries.txt'的文本文件里,然后做了类似这样的操作:

import string

myFilename = "countries.txt"

myTuples = []


myFile = open (myFilename, 'r')

for line in myFile.readlines():
    splitLine = string.split (line)
    code = splitLine [-3]
    country = string.join(splitLine[:-3])
    myTuples.append(tuple([country, code]))

myDict = dict(myTuples)
print myDict

这可能不是“最好”的方法,但看起来是有效的。

下面是根据约翰·马钦的建议做的:

import string

myFilename = "countries.txt"


myDict = {}

myFile = open (myFilename, 'r')

for line in myFile:
    splitLine = string.split (line)
    code = splitLine [-3]
    country = " ".join(splitLine[:-3])
    myDict[country] = code

print myDict

撰写回答