如何仅在键存在时对Pandas列应用map方法?
解决方法
当你使用Series.map(字典)时,若原字段值不在字典的键中,pandas会将其转为NaN,这就是空值数量增加的原因。以下两种方法可以实现「仅映射存在的键,否则保留原值」:
方法1:使用replace()方法
replace()只会替换字典中存在的键值对,不存在的原值会直接保留:
df_svn_subset['job_title_name'] = df_svn_subset['job_title_name'].replace(alias_job_titles)
方法2:结合lambda与字典的get()方法
利用字典的get()方法,指定默认返回值为原字段值,这样不在字典中的键会直接返回原值:
df_svn_subset['job_title_name'] = df_svn_subset['job_title_name'].map(lambda x: alias_job_titles.get(x, x))
内容的提问来源于stack exchange,提问作者Wolfy
相关产品推荐
相关产品推荐

