pandas重复行删除操作df.drop_duplicates和df.duplicated的区别

Pandas 是一种用于数据操作和分析的强大 Python 库。在数据分析的过程中,经常会遇到需要删除重复数据的情况。而 Pandas 提供了两种方法来删除重复行,即 df.drop_duplicates()df.duplicated()。下面分别进行详细讲解:

df.drop_duplicates()

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

该方法主要用于删除 DataFrame 中的重复行。其中各参数的含义如下:

  • subset:可选,用于指定列名或列名列表,表示要检查重复行的子集。如果此参数未指定,则默认检查所有列。
  • keep:可选,用于指定保留哪一个副本。当取值为 'first' 时,保留第一个副本;当取值为 'last' 时,保留最后一个副本;当取值为 False 时,删除所有副本。
  • inplace:可选,用于指定是否在原地修改数据,即修改 DataFrame 本身还是生成一个新的 DataFrame。默认为 False,生成新的 DataFrame。
  • ignore_index:可选,用于指定删除重复行后是否重新生成索引。默认为 False,保留原有索引。

示例代码:

import pandas as pd

# 创建有重复行的 DataFrame
data = {'name': ['Tom', 'Mary', 'Tom', 'John'], 'age': [20, 21, 20, 19]}
df = pd.DataFrame(data)

print("原 DataFrame:")
print(df)

# 删除重复行
df = df.drop_duplicates()

print("\n删除重复行后的 DataFrame:")
print(df)

输出结果:

原 DataFrame:
   name  age
0   Tom   20
1  Mary   21
2   Tom   20
3  John   19

删除重复行后的 DataFrame:
   name  age
0   Tom   20
1  Mary   21
3  John   19

从输出结果可以看出,重复的第二行已经被删除掉了。

df.duplicated()

df.duplicated(subset=None, keep='first')

该方法主要用于判断 DataFrame 中的每行是否重复。与 df.drop_duplicates() 方法不同的是,df.duplicated() 方法不会删除任何行,而只是返回一个布尔数组,表示每行是否是重复的。其中各参数的含义与 df.drop_duplicates() 相同。

示例代码:

import pandas as pd

# 创建有重复行的 DataFrame
data = {'name': ['Tom', 'Mary', 'Tom', 'John'], 'age': [20, 21, 20, 19]}
df = pd.DataFrame(data)

print("原 DataFrame:")
print(df)

# 判断每行是否重复
is_duplicated = df.duplicated()

print("\n每行是否重复:")
print(is_duplicated)

输出结果:

原 DataFrame:
   name  age
0   Tom   20
1  Mary   21
2   Tom   20
3  John   19

每行是否重复:
0    False
1    False
2     True
3    False
dtype: bool

从输出结果可以看出,第二行和第三行被标记为重复,即第二行是重复行,而第三行是重复行之一。

综上,df.drop_duplicates() 方法可以直接删除重复行,而 df.duplicated() 方法则需要结合其他方法使用,如 ~df.duplicated() 可以获取没有重复行的 DataFrame。在实际场景中,可以根据具体需要选择使用哪一种方法。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:pandas重复行删除操作df.drop_duplicates和df.duplicated的区别 - Python技术站

(0)
上一篇 2023年6月13日
下一篇 2023年6月13日

相关文章

  • python pandas消除空值和空格以及 Nan数据替换方法

    下面是针对“python pandas消除空值和空格以及NaN数据替换方法”的完整攻略: 消除空值和空格 检测空值 在pandas中,使用isnull()方法检测是否存在缺失值。这个方法会返回一个布尔值的dataframe。其中缺失的值为True,非缺失的值为False。 import pandas as pd import numpy as np df =…

    python 2023年5月14日
    00
  • 从列表中创建一个Pandas数据框架

    创建Pandas数据框架可以通过多种方式,其中之一是从列表中创建。下面是从列表中创建Pandas数据框架的详细攻略: 导入Pandas库 在开始之前,需要导入Pandas库: import pandas as pd 创建列表 我们需要准备一个列表作为数据框架的原始数据。在这个例子中,我们将创建一个列表,其中包含三个元素:城市、人口和面积。代码如下: data…

    python-answer 2023年3月27日
    00
  • python 用Matplotlib作图中有多个Y轴

    当需要在一个图中,将两个或以上的不同的 Y 轴进行同步展示时,可以借助 Matplotlib 库实现。以下是实现方法的完整攻略。 1. 导入 Matplotlib 库 import matplotlib.pyplot as plt 2. 新建画布和子图 figsize 参数用于设置画布的大小 constrained_layout 参数可以使图表自动调整大小,…

    python 2023年6月14日
    00
  • pandas 查询函数query的用法说明

    下面是关于pandas查询函数query的用法说明的完整攻略。 1. 简介 Pandas是一种数据处理工具,在数据处理的过程中,经常需要进行数据筛选,查询等操作。Pandas提供了一个强大的查询函数query,可以帮助我们更方便地进行数据查询和筛选操作。 2. query函数的基本语法 query函数的基本语法为: DataFrame.query(expr,…

    python 2023年5月14日
    00
  • 如何在Pandas中为数据框架添加空列

    为Pandas中的数据框添加空列可以通过以下步骤: 利用Pandas的DataFrame方法创建数据框; 使用DataFrame的assign方法为数据框添加空列; 使用赋值语句给空列赋值。 下面的例子演示了如何为数据框添加空列: import pandas as pd # 创建一个包含两列数据的数据框 data = { ‘col1’: [1, 2, 3],…

    python-answer 2023年3月27日
    00
  • Pandas数据处理加速技巧汇总

    Pandas数据处理加速技巧汇总 在处理大量数据时,很容易因为算法效率低下而导致程序运行缓慢。本篇文章将介绍一些针对Pandas数据处理的加速技巧,帮助你更快地完成数据处理任务。 1. 使用eval() eval() 函数是 Pandas 用于高效解析 Pandas 表达式的函数。例如,要在 Pandas DataFrame 中选择 x > 1的行,可…

    python 2023年5月14日
    00
  • Python 使用Iris数据集的Pandas基础知识

    首先,让我们简单介绍一下Iris数据集。Iris数据集是一个经典的多变量数据集,用于分类和聚类算法的测试和演示,由Fisher在1936年创造,并称为Iris花卉数据集。它包含150个观察值,分别代表三个不同品种的鸢尾花,每个品种包含50个样本。每个样本都包含了萼片长度、萼片宽度、花瓣长度和花瓣宽度四个特征。 接下来,我们将详细介绍如何使用Pandas库来操…

    python-answer 2023年3月27日
    00
  • 在Python中找出是某个数字的倍数的位置

    在Python中找出某个数字的倍数的位置可以通过以下步骤实现: 创建一个空数组或列表,用于存储找到的位置 遍历原始数组或列表,判断每个数是否为目标数字的倍数 如果是目标数字的倍数,将该数的位置添加到第1步中创建的数组或列表中 返回第1步中创建的数组或列表,其中存储的是目标数字的倍数位置 下面是一个使用 Python 代码示例的完整攻略: # 定义原始数组 n…

    python-answer 2023年3月27日
    00
合作推广
合作推广
分享本页
返回顶部