首页 > 其他分享 >Pandas中df.drop_duplicates()的用法

Pandas中df.drop_duplicates()的用法

时间:2024-09-18 14:23:15浏览次数:3  
标签:False df drop duplicates cleaned 重复

df.drop_duplicates() 是 Pandas 中用于删除重复行的函数。它可以根据特定列或整个数据框中出现的重复值,保留第一项或最后一项,并删除其余的重复项。这个函数很适合用于数据清洗,特别是处理重复数据时。

基本语法:

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

参数说明:

  1. subset: 指定检查重复值的列或列的组合。

    • 类型:列表、字符串或None(默认)。
    • 默认值:None,即对所有列检查重复值。
    • 用法:如果只想根据某些列来判断重复行,可以通过 subset 参数指定这些列。

    示例

    df.drop_duplicates(subset=['col1', 'col2'])
    
  2. keep: 指定在处理重复项时保留哪一项。

    • 类型:{'first', 'last', False}
    • 'first':保留第一次出现的重复项(默认值)。
    • 'last':保留最后一次出现的重复项。
    • False:删除所有重复项,不保留任何重复项。

    示例

    df.drop_duplicates(keep='last')
    df.drop_duplicates(keep=False)  # 删除所有重复项
    
  3. inplace: 是否直接在原数据上修改,还是返回一个新的 DataFrame

    • 类型:布尔值,TrueFalse
    • 默认值:False
    • False:返回一个删除了重复行后的新 DataFrame,不改变原数据。
    • True:直接修改原数据,操作不会返回新 DataFrame

    示例

    df.drop_duplicates(inplace=True)
    
  4. ignore_index: 是否重置索引。

    • 类型:布尔值,TrueFalse
    • 默认值:False
    • True:删除重复项后,重置索引。
    • False:删除重复项后,保留原来的索引。

    示例

    df.drop_duplicates(ignore_index=True)
    

示例:

  1. 删除所有列的重复行(默认行为)

    import pandas as pd
    data = {'A': [1, 1, 2, 2, 3], 'B': [4, 4, 5, 6, 6], 'C': [7, 7, 8, 9, 9]}
    df = pd.DataFrame(data)
    df_cleaned = df.drop_duplicates()
    print(df_cleaned)
    

    输出:

       A  B  C
    0  1  4  7
    2  2  5  8
    3  2  6  9
    4  3  6  9
    
  2. 基于特定列删除重复行

    df_cleaned = df.drop_duplicates(subset=['A'])
    print(df_cleaned)
    

    输出:

       A  B  C
    0  1  4  7
    2  2  5  8
    4  3  6  9
    

    这里根据 A 列删除重复行,保留了第一次出现的每个 A 值。

  3. 保留最后一次出现的重复项

    df_cleaned = df.drop_duplicates(subset=['A'], keep='last')
    print(df_cleaned)
    

    输出:

       A  B  C
    1  1  4  7
    3  2  6  9
    4  3  6  9
    

    这里保留了 A 列中最后一次出现的值。

  4. 删除所有重复行(不保留任何项)

    df_cleaned = df.drop_duplicates(keep=False)
    print(df_cleaned)
    

    输出:

       A  B  C
    2  2  5  8
    3  2  6  9
    4  3  6  9
    

    此时,完全删除了所有重复项。

  5. inplace=True 修改原数据

    df.drop_duplicates(inplace=True)
    print(df)
    

    此时,df 自身已经被修改为删除了重复行的状态。

  6. 重置索引

    df_cleaned = df.drop_duplicates(ignore_index=True)
    print(df_cleaned)
    

    输出:

       A  B  C
    0  1  4  7
    1  2  5  8
    2  2  6  9
    3  3  6  9
    

总结:

df.drop_duplicates() 是 Pandas 中用于去重的函数,允许你根据行或指定列删除重复值,并通过不同的参数控制去重行为和结果。它对数据清洗非常有用,特别是在需要处理重复记录时。

标签:False,df,drop,duplicates,cleaned,重复
From: https://blog.csdn.net/weixin_37522117/article/details/142332456

相关文章

  • linux上批量将pdf转为png文件
    点击查看代码importfitz#pipinstallpymupdf-ihttps://pypi.tuna.tsinghua.edu.cn/simple/importosdefpdf2img(pdf_path,zoom_x,zoom_y):"""参数说明:parampdf_path:pdf文件的路径:paramzoom_x:x轴方向的缩放系数:paramzoom_y:y轴......
  • nn.Dropout()与nn.functional.dropout()的区别
    在PyTorch中,`Dropout`主要有两种常见的使用方式:1.**`torch.nn.Dropout`模块**:通常用于模型的层定义中。2.**`torch.nn.functional.dropout`(即`F.dropout`)**:通常用于在`forward`方法中直接调用。###1.**`torch.nn.Dropout`**这是PyTorch中的标准`Dropout`层,通......
  • 靶机 hackademic-udf提权
    sqlmap一把梭burpsuit跑账号密码,可能跑不出来,登录有点问题查不到有用信息,尝试内核提权提权成功拓展-mysqludf提权看到别人的wp改造一下靶机能学到别的东西https://blog.csdn.net/Bossfrank/article/details/131553175先拿到root权限,在/usr/lib/mysql/目录下将plugin目录的......
  • c# 在PDFsharp里绘制ZXing生成的条形码矢量图
    PDFsharp支持在pdf文档里生成矢量格式的二维码,单支持的条码格式比较少,不支持常用的93码和二维码等。ZXing支持的条码多,但无法在PDFsharp里直接绘制矢量格式的图形。这里一个扩展就可以 在PDFsharp里绘制ZXing生成的条形码矢量图了。使用方法:usingPdfSharp.Drawing;using......
  • 如何在 Cloudflare Page 上建立自己的 Hexo 博客
    本文首发于我的博客,部分图片和步骤来自在GitHubDesktop中向GitHub进行身份验证-GitHub文档0前置条件0.1安装Node.js打开nodejs.org,点击下载Node.js下载完毕后双击图标然后按Next点IacceptthetermsintheLicenseAgreement,再按Next然后一......
  • PDF标准详解(五)——图形状态
    在第三节中,我们说到Q/q这一对操作符是用来保存和还原图形状态的,那个时候只有一个简单的概念,变换矩阵是图形状态的一员,那么什么是图形状态,以及有哪些图形状态呢?本节将要描述这部分的内容图形状态一个PDF应用程序维护内部数据结构称为图形状态,它保存了当前图形控制参数。这些参数......
  • 六种主流ETL工具的比较与Kettle的实践练习指南--MySQL、hive、hdfs等之间的数据迁移
            在数据集成和数据仓库建设中,ETL(Extract,Transform,Load)工具扮演着至关重要的角色。本文将对六种主流ETL工具进行比较,并深入探讨Kettle的实践应用。一、六种主流ETL工具比较1.DataPipeline设计及架构:专为超大数据量、高度复杂的数据链路设计的灵活、可扩......
  • 在 Windows 上恢复已删除的 PDF 文件的最佳方法
    如果您不小心删除了PDF文件或由于系统突然崩溃而无法再找到它们,本指南介绍了恢复已删除文件的最佳方法。帖子中列出的方法简单、有效且可行。我们在列出它们之前对其进行了测试。什么是PDF,Adobe将未保存的PDF存储在哪里?自从Adobe开发可移植文档格式(PDF)以来,该格式......
  • Hadoop(十一)HDFS 读写数据流程
    HDFS读写数据流程一、写数据流程1、客户端通过DistributedFileSystem模块向NameNode请求上传文件,NameNode检查目标文件是否已存在,父目录是否存在2、NameNode返回是否可以上传3、客户端请求第一个Block上传到哪几个DataNode服务器上4、NameNode返回3个DataNode节点,分别为dn1......
  • 智能 Uber 发票 PDF 合并工具
    在现代商务出行中,尤其是在跨国出差中,处理和整合大量Uber发票已成为一项不小的挑战。手动整理和合并这些发票不仅耗时,还容易出错。作为开发者,为什么不开发一个自动化工具,将这些任务交给代码来完成呢?在这篇博客中,我将带你一步步构建一个结合PyQt5、pdfplumber和PyPDF2的智......