Pandas多列字符串处理:如何移除「↑ 0」单元格中的0仅保留「↑」
Pandas替换单元格内容问题修复方案
原代码错误点
- 正则规则完全不匹配目标格式:原正则
r'^?(0)$'既没有匹配目标内容开头的↑(箭头加空格),^?属于无效正则语法,同时匹配全字符串结尾的0会误删xda列中单独的0值,不符合需求。 - replace参数使用错误:
dict(string={pat: ''})是错误的参数写法,pandas针对DataFrame做全表正则替换不需要加string这个key。
修复后实现代码
import pandas as pd # 正则仅匹配值完全为「↑ 0」的单元格,^匹配开头 $匹配结尾避免误改其他内容 pat = r'^↑ 0$' df = pd.DataFrame ({'Data': ['↑ *', '*', '↑ **'], 'myda': ['↑ 0', '*', '↑ 0'], 'xda': ['0', '100', '0.05']}) # 匹配到的内容直接替换为「↑」 df = df.replace(pat, '↑', regex=True)
运行输出验证
Data myda xda 0 ↑ * ↑ 0 1 * * 100 2 ↑ ** ↑ 0.05
内容的提问来源于stack exchange,提问作者rpb
相关产品推荐
相关产品推荐

