如何使用Pandas正则表达式replace方法移除字符串中的¹符号?
Pandas移除字符串中的¹符号实现方法
你写的df.replace({"column":{'*¹':''}}, regex=True)不可行,因为正则里的*是特殊元字符,代表匹配前面的字符0次或多次,这样写会把所有包含¹的字符串直接清空,而不是只移除¹符号。
下面是几种正确的实现方式:
直接替换特定字符(无需正则)
因为只是移除单个固定符号,最简单的方式是直接指定目标字符替换:# 方式1:针对单列处理 df['column'] = df['column'].replace('¹', '', regex=False) # 方式2:用字典格式全局替换(可选inplace=True直接修改原数据) df.replace({'column': '¹'}, '')这里
regex=False是默认参数,可省略,加上是为了明确说明不需要解析正则。结合正则的替换方式
如果需要用正则(比如后续要扩展匹配其他上标符号),直接匹配¹即可(它不是正则元字符,无需转义):# 方式1:用df.replace df.replace({'column': r'¹'}, '', regex=True) # 方式2:用str.replace更简洁 df['column'] = df['column'].str.replace('¹', '')
如果需要批量移除多个类似上标符号(比如¹、²、³),可以用正则字符集:
df['column'] = df['column'].str.replace(r'[¹²³]', '', regex=True)
内容的提问来源于stack exchange,提问作者null92
相关产品推荐
相关产品推荐

