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

如何删除Pandas DataFrame列中数字后的单位,同时保留纯文本行内容

问题原因

你原有代码中\D会匹配所有非数字字符,纯文本行的内容会被全部匹配并删除,得到空值,不符合预期。

解决方案

使用更精准的正则,仅处理开头为数字的行,删除数字后的所有内容,非数字开头的行保持原样即可,代码如下:

df["Column"] = df["Column"].replace(r"^(\d+)\D.*$", r"\1", regex=True)

正则逻辑说明

  • ^(\d+):匹配行开头的连续数字,捕获为第一组
  • \D.*$:匹配数字后的所有非数字开头到行尾的内容
  • 替换为\1即仅保留捕获到的开头数字,没有匹配到规则的行内容不会被修改

如果你需要兼容带小数点的数值(比如2.5 cm),可以把正则调整为:

df["Column"] = df["Column"].replace(r"^(\d+\.?\d*)\D.*$", r"\1", regex=True)

运行后即可得到你需要的输出结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 19:09:05