python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > python drop_duplicates() 使用

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

作者:林深时见鹿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:指定判断重复的列

2.keep:保留哪一行

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

4.ignore_index:是否重置索引

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

先创建一个带重复数据的 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() 使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文