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

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 = (energy['Country'].isin(enDict))


但是,我只想在'True'不修改字典中不包含的值时(即保持各行的值不匹配),才将该掩码应用于'Country'列。

任何的想法?

提前致谢。

最佳答案

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

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

关于python - Pandas :根据字典更改列值,保留不匹配的行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45362150/

10-11 23:32