You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

pandas替换DataFrame列字符触发FutureWarning的解决方法

警告产生原因

当前pandas版本的Series.str.replace()方法默认regex=True,即传入的第一个匹配参数会被当作正则表达式解析;未来pandas版本中这个参数的默认值会改为False,默认按普通字符串字面量做匹配。
你的代码没有显式指定regex参数,版本升级后运行逻辑会发生变化,因此抛出FutureWarning做兼容性提醒。
另外你写的正则[\$, \,]里多了空格匹配项,会把字段里的空格也一并删除,不需要删空格的话可以把字符组里的空格去掉。

修改方案

以下两种写法都能满足价格字段清洗需求,同时彻底消除警告:

  • 正则写法(适合批量匹配多字符):显式指定regex=True,建议用原始字符串格式写正则避免转义问题,同时优化冗余的正则规则
    # 仅删除$符号和英文逗号
    car_sales['Price'] = car_sales['Price'].str.replace(r'[\$,]', '', regex=True)
    
    如果需要顺便清理字段前后的多余空格,可以把正则改成r'[\$,\s]',或者在替换后调用.str.strip()单独处理。
  • 普通字符串替换写法(逻辑更直观,无正则兼容问题):显式指定regex=False,分别替换两个固定字符,新旧版本pandas运行结果完全一致
    car_sales['Price'] = car_sales['Price'].str.replace('$', '', regex=False).str.replace(',', '', regex=False)
    
可选优化

替换完成后Price列仍为字符串格式,如果后续需要做价格相关的数值计算、统计,可以将其转为整数类型:

car_sales['Price'] = car_sales['Price'].astype(int)

内容的提问来源于stack exchange,提问作者meallhour

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 14:42:18