当前位置: 代码网 > it编程>前端脚本>Python > python中drop_duplicates()函数的具体使用

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

2026年04月17日 Python 我要评论
一、基础语法# dataframe 使用df.drop_duplicates( subset=none, keep="first", inplace=false, ignore

一、基础语法

# 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() 使用内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com