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

Python Pandas如何删除含多段点分数字(如1.2.3)的行

解决方案

核心思路是先统一将目标列内容转为字符串,再通过正则匹配识别「仅由数字和点组成」的内容,过滤掉匹配成功的行即可。

完整实现代码

import pandas as pd

# 构造示例DataFrame,可替换为你的实际数据
df = pd.DataFrame({
    'ID': [1, 2, 3],
    'content': ['3.3.4 texts here', '3.3.4', '3.3']
})

# 核心过滤逻辑
# 先统一转字符串避免类型差异影响,正则匹配纯带点数字串,取反保留不符合规则的行
df = df[~df['content'].astype(str).str.fullmatch(r'\d+(\.\d+)*')]

规则说明

  • 正则r'\d+(\.\d+)*'可匹配所有仅由数字和点组成的字符串,覆盖3.3、3.3.4、123等多种格式
  • astype(str)统一处理float、string两种可能的类型,无需提前判断字段类型
  • 若内容可能存在前后导空格,可在匹配前增加str.strip()处理,修改为:
    df = df[~df['content'].astype(str).str.strip().str.fullmatch(r'\d+(\.\d+)*')]
    

运行上述代码后,输出结果仅保留ID为1的行,符合预期要求。


内容的提问来源于stack exchange,提问作者Ken Russel Sy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 06:57:04