我正在合并一些有关全球200多个国家的数据集。在清理数据时,我需要将每个国家/地区的三个字母代码转换为国家/地区的全名。
三个字母的代码和国家/地区全名来自单独的CSV文件,该文件显示的国家/地区略有不同。
我的问题是:有更好的方式来写这个吗?
str.replace("USA", "United States of America")
str.replace("CAN", "Canada")
str.replace("BHM", "Bahamas")
str.replace("CUB", "Cuba")
str.replace("HAI", "Haiti")
str.replace("DOM", "Dominican Republic")
str.replace("JAM", "Jamaica")
等等。它继续另外200行。谢谢!
答案 0 :(得分:1)
由于替换次数很多,我会迭代字符串中的单词并根据字典查找进行替换。
mapofcodes = {'USA': 'United States of America', ....}
for word in mystring.split():
finalstr += mapofcodes.get(word, word)
答案 1 :(得分:0)
尝试将CSV文件读入字典中的二维数组,然后您可以访问所需的文件。
如果我理解你的问题,那就是。
答案 2 :(得分:0)
这是一个正则表达式解决方案:
import re
COUNTRIES = {'USA': 'United States of America', 'CAN': 'Canada'}
def repl(m):
country_code = m.group(1)
return COUNTRIES.get(country_code, country_code)
p = re.compile(r'([A-Z]{3})')
my_string = p.sub(repl, my_string)