Python Pandas dataframe.drop_duplicates()

Python Pandas dataframe.drop_duplicates()

Pandas drop_duplicates()方法有助于从Pandas Dataframe In Python中删除重复的内容。

df.drop_duplicates()

语法: DataFrame.drop_duplicates(subset=None, keep=’first’, inplace=False)

参数:

  • subset。Subset接收一个列或列标签的列表。它的默认值是无。在传递列之后,它将只考虑它们的重复。
  • keep:keep是用来控制如何考虑重复的值。它只有三个不同的值,默认是 “first”。
    • 如果’first’,它认为第一个值是唯一的,其余相同的值是重复的。
    • 如果是’last’,它认为最后一个值是唯一的,其余的相同值是重复的。
    • 如果是假的,它认为所有相同的值都是重复的。
  • inplace:布尔值,如果为真,则删除有重复的行。

返回类型:数据框架,根据传递的参数,删除重复的行。

示例:

我们可以看到其中一个TeamA和团队由于价值重复而被放弃。

import pandas as pd
  
data = {
    "A": ["TeamA", "TeamB", "TeamB", "TeamC", "TeamA"],
    "B": [50, 40, 40, 30, 50],
    "C": [True, False, False, False, True]
}
  
df = pd.DataFrame(data)
  
display(df.drop_duplicates())
Python

输出:

    A        B    C
0    TeamA    50    True
1    TeamB    40    False
3    TeamC    30    False
Python

要下载所用的CSV文件,请点击这里。

例子1:删除具有相同名字的行

在下面的例子中,具有相同名字的行被删除,并返回一个新的数据框架。

# importing pandas package
import pandas as pd
  
# making data frame from csv file
data = pd.read_csv("employees.csv")
  
# sorting by first name
data.sort_values("First Name", inplace=True)
  
# dropping ALL duplicate values
data.drop_duplicates(subset="First Name",
                     keep=False, inplace=True)
  
# displaying data
data
Python

输出:

如图所示,具有相同名称的行被从一个数据框中删除。

Python Pandas dataframe.drop_duplicates()

例子2:删除有所有重复值的行

在这个例子中,拥有所有数值的行将被删除。由于CSV文件中没有这样的行,所以先复制一个随机行并插入到数据框中。

# length before adding row
length1 = len(data)
  
# manually inserting duplicate of a row of row 440
data.loc[1001] = [data["First Name"][440],
                  data["Gender"][440],
                  data["Start Date"][440],
                  data["Last Login Time"][440],
                  data["Salary"][440],
                  data["Bonus %"][440],
                  data["Senior Management"][440],
                  data["Team"][440]]
  
# length after adding row
length2 = len(data)
  
# sorting by first name
data.sort_values("First Name", inplace=True)
  
# dropping duplicate values
data.drop_duplicates(keep=False, inplace=True)
  
# length after removing duplicates
length3 = len(data)
  
# printing all data frame lengths
print(length1, length2, length3)
Python

输出:

如输出图片所示,删除重复的数据后的长度为999。由于keep参数被设置为False,所有重复的行都被删除。

Python Pandas dataframe.drop_duplicates()

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册