python中drop_duplicates()函数的具体使用

 更新时间:2026年04月17日 09:21:47   作者:林深时见鹿1  
本文主要介绍了python中drop_duplicates()函数的具体使用,介绍了其四个核心参数subset、keep、inplace和ignore_index,具有一定的参考价值,感兴趣的可以了解一下

一、基础语法

# DataFrame 使用
df.drop_duplicates(
    subset=None,
    keep="first",
    inplace=False,
    ignore_index=False
)
# Series 使用(用法一致)
s.drop_duplicates(keep="first", inplace=False)

参数说明

参数说明默认值
subset指定检查重复的列名或列名列表None(所有列)
keep保留哪个重复值:'first'/'last'/False'first'
inplace是否原地修改False
ignore_index是否重置索引False

二、4 个核心参数(必看)

这是理解这个函数的关键,每个参数都有明确用途:

1.subset:指定判断重复的列

  • 默认值:None整行所有列都相同才算重复
  • 用法:传入列名列表,比如 subset=["姓名", "年龄"] → 只有这两列都相同才判定为重复

2.keep:保留哪一行

  • keep="first"(默认):保留第一次出现的行,删除后面重复的
  • keep="last"保留最后一次出现的行,删除前面重复的
  • keep=False把所有重复行全部删除,一条都不留

3.inplace:是否直接修改原数据

  • inplace=False(默认):返回一个新的 DataFrame,原数据不变
  • inplace=True直接在原数据上删除重复行,不返回新对象

4.ignore_index:是否重置索引

  • ignore_index=False(默认):删除后保留原来的索引
  • ignore_index=True:删除后重置索引为 0,1,2...

三、最直观的示例(一看就懂)

先创建一个带重复数据的 DataFrame:

import pandas as pd
data = {
    "姓名": ["小明", "小红", "小明", "小明", "小红"],
    "科目": ["数学", "语文", "数学", "英语", "语文"],
    "分数": [90, 85, 90, 88, 85]
}
df = pd.DataFrame(data)
print(df)

输出:

   姓名  科目  分数
0  小明  数学   90
1  小红  语文   85
2  小明  数学   90  ← 重复行
3  小明  英语   88
4  小红  语文   85  ← 重复行

示例 1:默认用法(整行重复才删,保留第一次)

df_new = df.drop_duplicates()
print(df_new)

结果:行 0、1、3、4 保留,行 2 删除。

示例 2:只按某几列判断重复

# 只要【姓名+科目】重复就算重复
df_new = df.drop_duplicates(subset=["姓名", "科目"])

示例 3:保留最后一次出现的重复行

df_new = df.drop_duplicates(keep="last")

示例 4:彻底删除所有重复行(一条不留)

df_new = df.drop_duplicates(keep=False)

示例 5:直接修改原数据 + 重置索引

df.drop_duplicates(inplace=True, ignore_index=True) 

四、高频实用场景总结

整表去重

df.drop_duplicates() 

按关键字段去重(最常用)

df.drop_duplicates(subset=["ID", "订单号"]) 

保留最新数据

df.drop_duplicates(subset=["用户ID"], keep="last") 

找出所有完全唯一的数据

df.drop_duplicates(keep=False) 

五、重要注意事项

  1. 区分 drop_duplicates() 和 unique()
    • drop_duplicates() → 返回DataFrame
    • unique() → 返回一维数组(numpy array)
  2. 空值 NaN 会被视为相同值两行都有 NaN,会被判定为重复
  3. 不修改原数据(默认)想直接覆盖原数据必须加 inplace=True

总结

drop_duplicates() 就是 pandas 去重神器,核心记住 4 点:

  1. subset 定判断重复的列
  2. keep 定保留哪条重复数据
  3. inplace 定是否改原数据
  4. ignore_index 定是否重置索引

到此这篇关于python中drop_duplicates()函数的具体使用的文章就介绍到这了,更多相关python drop_duplicates() 使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

最新评论