详解pandas使用drop_duplicates去除DataFrame重复项参数

陆景行
陆景行
发布时间:2026-10-13| 6人浏览过
原创

本文深入解析pandas库中drop_duplicates函数的核心参数subset、keep和inplace。通过具体代码示例,演示如何指定列进行去重、控制保留策略以及原地修改数据。同时指出直接赋值副本可能引发的SettingWithCopyWarning警告,并提供最佳实践建议,帮助开发者高效处理DataFrame重复行问题。

pandas drop_duplicates概述

Pandas之drop_duplicates:去除重复项

方法

核心参数详解


DataFrame.drop_duplicates(subset=None, keep='first', inplace=False)

参数

drop_duplicates函数主要用于处理DataFrame格式的数据,旨在移除特定列下的重复行,并返回处理后的DataFrame对象。

  • subset:指定列标签或标签序列(可选),用于确定参与去重检查的特定列,若未指定则默认检查所有列。
  • keep:取值可为‘first'、‘last'或False(默认‘first'),用于决定在删除重复项时保留哪一行的数据,默认保留首次出现的记录。
  • inplace:布尔值(默认False),指示是否直接在原始数据对象上进行修改,还是返回一个经过处理的新副本。

当DataFrame中存在完全重复的行,或者多行中某些指定列的值出现重复时,通常需要执行去重操作。具体示例如下:

去重实战示例


data.drop_duplicates(subset=['A','B'],keep='first',inplace=True)

代码中subset参数接收列名,表示仅针对这些指定列进行去重处理,即根据这些列对应值的相同性来合并行。若subset设为None(默认值),则考虑所有列进行比对。

当keep参数设为'first'时,表示保留第一次出现的重复行,这也是该参数的默认行为。此外,keep还有两个其他取值:'last'表示保留最后一次出现的重复行,而False则表示移除所有重复的行,不保留任何重复记录。

设置inplace=True意味着直接在当前的DataFrame实例上执行删除重复项的操作,不生成新对象;而默认值False则会生成并返回一个去重后的副本,原数据保持不变。

若将去重后的副本赋值给新的DataFrame变量,操作方式如下:

副本赋值与潜在警告


data=data.drop_duplicates(subset=None,keep='first',inplace=False)

这一行代码的功能与文章开头提到的直接修改原数据的效果在结果上是等效的。然而,如果随后尝试在该新创建的DataFrame上增加一列:


data['extra']=test_data['item_price_level']

程序可能会抛出如下错误提示:

SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame.

因此,为了避免此类警告并确保数据操作的稳定性,建议在对DataFrame进行去重时,优先采用直接修改原数据的方式(即使用inplace=True或开头提到的代码风格)。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。