如何在 pandas dataframe 中查找重复项(附示例)


您可以使用duplicated()函数来查找pandas DataFrame中的重复值。

该函数使用以下基本语法:

 #find duplicate rows across all columns
duplicateRows = df[df. duplicated ()]

#find duplicate rows across specific columns
duplicateRows = df[df. duplicated ([' col1 ',' col2 '])]

以下示例展示了如何在实践中通过以下 pandas DataFrame 使用此函数:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   ' points ': [10, 10, 12, 12, 15, 17, 20, 20],
                   ' assists ': [5, 5, 7, 9, 12, 9, 6, 6]})

#view DataFrame
print (df)

  team points assists
0 to 10 5
1 to 10 5
2 to 12 7
3 to 12 9
4 B 15 12
5 B 17 9
6 B 20 6
7 B 20 6

示例 1:查找所有列中的重复行

以下代码显示了如何在 DataFrame 的所有列中查找重复行:

 #identify duplicate rows
duplicateRows = df[df. duplicated ()]

#view duplicate rows
duplicateRows

        team points assists
1 to 10 5
7 B 20 6

有两行与 DataFrame 中的其他行完全相同。

请注意,我们还可以使用keep=’last’参数来显示第一个重复行而不是最后一个:

 #identify duplicate rows
duplicateRows = df[df. duplicated (keep=' last ')]

#view duplicate rows
print (duplicateRows)

	team points assists
0 to 10 5
6 B 20 6

示例 2:查找特定列中的重复行

以下代码显示如何仅在 DataFrame 的“team”和“points”列中查找重复行:

 #identify duplicate rows across 'team' and 'points' columns
duplicateRows = df[df. duplicated ([' team ',' points '])]

#view duplicate rows
print (duplicateRows)

        team points assists
1 to 10 5
3 to 12 9
7 B 20 6

在三行中,“team”和“points”列中的值是前一行的精确副本。

示例 3:查找列中的重复行

以下代码显示如何仅在 DataFrame 的“team”列中查找重复行:

 #identify duplicate rows in 'team' column
duplicateRows = df[df. duplicated ([' team '])]

#view duplicate rows
print (duplicateRows)

	team points assists
1 to 10 5
2 to 12 7
3 to 12 9
5 B 17 9
6 B 20 6
7 B 20 6

总共有六行,其中“团队”列中的值与前几行完全相同。

其他资源

以下教程解释了如何在 pandas 中执行其他常见操作:

如何删除 Pandas 中的重复行
如何删除 Pandas 中的重复列
如何在 Pandas 中按索引选择列

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注