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

如何使用Pandas删除DataFrame中的近似重复数据行

解决方案

我们可以通过正则提取编号的公共前缀后按前缀去重实现需求,具体代码如下:

import pandas as pd
# 构造示例数据
df = pd.DataFrame({
    'NUMBER': [
        '682-21803-405',
        '682-21803-420', 
        '682-21803-430',
        '694-3561821-41-1',
        '694-3561821-41-4',
        '694-3561821-41-5'
    ]
})
# 核心逻辑:提取前缀+去重
df['prefix'] = df['NUMBER'].str.extract(r'(.+)-[^-]+$')
result = df.drop_duplicates(subset='prefix', keep='first').drop(columns='prefix')
print(result)

代码说明

  • 正则r'(.+)-[^-]+$'的作用是匹配最后一个-之前的所有内容作为公共前缀:
    • .+匹配任意字符1次及以上
    • -[^-]+$匹配最后一个-以及之后的所有非-字符
  • drop_duplicates的keep='first'参数指定保留每个分组的第一条数据

运行后输出结果和你期望的一致:

NUMBER
0     682-21803-405
3  694-3561821-41-1

内容的提问来源于stack exchange,提问作者js-mejden

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 21:15:07