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

如何从dataframe中提取仅出现一次的唯一行,解决drop_duplicates参数设置问题

解决方案

你需要筛选出指定列组合仅出现1次的行即可,方案适配多列去重场景,只需调整判断重复的列名列表即可。


完整可运行代码示例

import pandas as pd

# 构造示例数据
df = pd.DataFrame({
    'ORDER ID': [123, 123, 123, 456, 456, 456, 789, '000'],
    'ITEM CODE': ['XXX', 'YYY', 'YYY', 'XXX', 'XXX', 'XXX', 'XXX', 'YYY']
})

# 指定判断重复的列,多列场景直接往列表里加列名即可
subset_cols = ['ORDER ID', 'ITEM CODE']

# 方法1:用drop_duplicates直接实现,逻辑最简洁
df_result = df.drop_duplicates(subset=subset_cols, keep=False)

# 方法2:用分组统计实现,适合需要额外加过滤逻辑的场景
# df_result = df[df.groupby(subset_cols)[subset_cols[0]].transform('count') == 1]

输出结果验证

运行后输出完全符合预期:

ORDER ID ITEM CODE
0      123       XXX
6      789       XXX
7      000       YYY

异常排查(如果你用drop_duplicates未得到预期结果)

优先检查以下两类问题:

  • 子集列的数据类型不一致,比如ORDER ID列同时存在数字类型的123和字符串类型的'123',会被判定为不同值
  • 字符串列存在不可见字符,比如ITEM CODE列同时存在'XXX'和末尾带空格的'XXX ',会被判定为不同值
    先做数据类型统一和异常字符清洗后,再执行去重逻辑即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 11:06:03