pandas DataFrame列替换|符号为空格不生效该如何处理?
问题原因
pandas.Series.replace() 默认regex=False,执行的是单元格全值精确匹配,只有整个单元格内容完全等于|时才会替换。你的colB列没有值为单独|的单元格,因此替换不生效。
解决方法
方法1:使用str.replace()处理字符串子串(推荐)
Series.str.replace()专门用于处理列内字符串的子串匹配替换,两种可选写法:
- 关闭正则匹配,直接匹配普通字符
|
df['colB'] = df['colB'].str.replace('|', ' ', regex=False)
- 开启正则匹配时,转义正则特殊字符
|即可
df['colB'] = df['colB'].str.replace('\|', ' ', regex=True)
方法2:调整原replace方法参数
如果要继续使用Series级别的replace方法,开启正则匹配并转义|即可:
df['colB'] = df['colB'].replace('\|', ' ', regex=True)
内容的提问来源于stack exchange,提问作者Fazli
相关产品推荐
相关产品推荐

