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

如何用pandas实现SQL select distinct功能提取唯一行数据

Pandas多列组合去重(等效SQL SELECT DISTINCT)

pandas原生提供drop_duplicates()方法,天然支持多列有序组合去重,完全符合需求,无需自行实现扫描去重逻辑。

基础用法

全列组合去重

对DataFrame所有列的取值组合做去重,直接调用:

# df为原始DataFrame
df_distinct = df.drop_duplicates()

指定列组合去重

如果只需要判断部分列的组合是否重复,传入subset参数指定列名:

# 仅按col1、col2两列的有序组合判断重复
df_distinct = df.drop_duplicates(subset=['col1', 'col2'])

特性说明

  • 多列组合判断严格按列顺序识别,(2,1)和(1,2)会被判定为不同值,完全匹配SQL DISTINCT的行为逻辑
  • 返回结果为标准DataFrame格式,默认保留重复组的第一行记录,和示例输出顺序一致
  • 可通过keep参数调整保留规则:
    • keep='first'(默认):保留重复组的第一条记录
    • keep='last':保留重复组的最后一条记录
    • keep=False:删除所有存在重复的记录

示例验证

针对给出的测试数据,调用代码如下:

import pandas as pd

# 构造输入数据
df = pd.DataFrame([
    [1, 2],
    [2, 3],
    [1, 2],
    [4, 5],
    [2, 3],
    [2, 1]
], columns=['col1', 'col2'])

# 执行去重
df_distinct = df.drop_duplicates()
print(df_distinct)

输出结果:

col1  col2
0     1     2
1     2     3
3     4     5
5     2     1

和要求的SQL DISTINCT输出完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 16:15:03