Python pandas如何设置replace仅替换完全匹配的指定值而非所有匹配内容
问题原因
你之前的代码开启了regex=True参数,传入的"ct"会作为正则规则做模糊匹配,只要单元格内容包含ct子串就会触发替换,自然会误改其他包含该子串的内容。
解决方案
方案1(最简单,无需正则)
直接删除regex=True参数即可,pandas的replace方法默认就是*精确匹配整个单元格的值,只有单元格内容完全等于ct时才会执行替换,代码如下:
df_cleaned['cust_state'] = df_cleaned['cust_state'].replace("ct", "connecticut")
方案2(保留正则模式,适配复杂场景)
如果你需要保留正则匹配能力(比如后续要同时批量替换多个州的缩写),可以给正则规则添加首尾锚定符^和$,分别表示匹配字符串的开头和结尾,确保只有整个单元格内容完全是ct时才会匹配:
df_cleaned['cust_state'] = df_cleaned['cust_state'].replace(r"^ct$", "connecticut", regex=True)
内容的提问来源于stack exchange,提问作者user17593963
相关产品推荐
相关产品推荐

