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

Python中避免rstrip('.0')误删小数点前0,实现指定数值格式转换

解决方案

直接用矢量化正则替换实现精准匹配,避免模糊删除导致的错误,同时保证处理大数据的效率:

fileA = fileA.apply(lambda col: col.str.replace(r'^0\.0$', '0').str.replace(r'^[1-9]\.0$', '', regex=True)).fillna('')

代码说明

  • ^0\.0$:精准匹配完整字符串0.0,替换为0
  • ^[1-9]\.0$:精准匹配1-9开头、末尾为.0的完整字符串(如1.0、9.0),替换为空字符串''
  • 链式调用str.replace是pandas矢量化操作,比循环或模糊的rstrip效率高得多,适合超大数据量场景
  • 最后用fillna('')统一处理空值,和原逻辑保持一致

原代码问题分析

你之前用的str.rstrip('.0')是模糊删除字符串右侧所有属于.0字符集的字符,而非精准匹配末尾的.0:

  • 比如10.0会被处理成1(右侧的0和.被全部删除,连小数点前的0也被误删)
  • 0.0会被完全删除成空字符串,不符合你要保留0的需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 00:48:28