如何移除pandas DataFrame列值中的$符号 尝试replace方法未生效
pandas DataFrame指定列移除$符号的实现方案
原有代码不生效的原因
Series.replace()默认是全值精确匹配,仅当单元格整体内容和匹配规则完全一致时才会执行替换,无法匹配替换值内部的部分字符$是正则语法中的特殊字符,代表字符串结束位置,直接写r'$'无法匹配$符号本身,需要加反斜杠转义为r'\$'
正确实现代码
方案1:使用字符串专属替换方法(推荐)
针对字符串类型的列,直接调用str.replace方法实现局部替换:
DF_['H1 % Change'] = DF_['H1 % Change'].str.replace(r'\$', '', regex=True)
如果需要将处理后的结果转换为数值类型,可以追加类型转换逻辑:
DF_['H1 % Change'] = DF_['H1 % Change'].str.replace(r'\$', '', regex=True).astype(int)
如果列中存在空值(NaN),可以添加na参数避免报错:
DF_['H1 % Change'] = DF_['H1 % Change'].str.replace(r'\$', '', regex=True, na='')
方案2:使用Series.replace开启正则模式
如果要沿用replace方法,显式开启regex=True参数即可:
DF_['H1 % Change'] = DF_['H1 % Change'].replace(r'\$', '', regex=True)
内容的提问来源于stack exchange,提问作者Abdul Aziz Ahmad
相关产品推荐
相关产品推荐

