Pandas:根据字典保持行没有匹配来更改列值

时间:2017-07-27 22:40:09

标签: python pandas replace

我有一个带有国家/地区名称的数据框,并希望根据字典修改一些值:

enDict = {
    "Republic of Korea": "South Korea",
    "United States of America": "United States",
    "United Kingdom of Great Britain and Northern Ireland": "United Kingdom",
    "China, Hong Kong Special Administrative Region": "Hong Kong"
}

我可以用:

创建一个'mask'
mask = (energy['Country'].isin(enDict))

但是,我想在'Country'列中仅在'True'时应用该掩码,而不是修改字典中未包含的值,即保持行的值不匹配。

有什么想法吗?

提前致谢。

1 个答案:

答案 0 :(得分:2)

我们可以使用Series.replace()方法:

energy['Country'] = energy['Country'].replace(enDict, regex=True)