📌  相关文章
📜  根据所有或选定的列在数据框中查找重复行(1)

📅  最后修改于: 2023-12-03 14:55:39.614000             🧑  作者: Mango

根据所有或选定的列在数据框中查找重复行

如果您需要在数据框中查找重复行,可以使用duplicated()函数来帮助您完成。duplicated() 函数可以检查数据框的每一行是否与前面的行重复。如果有任何重复行,它会返回 True。下面是一个示例:

import pandas as pd

# 创建一个数据框
df = pd.DataFrame({
    'name': ['Tom', 'Jerry', 'Mike', 'Tom'],
    'age': [22, 23, 24, 22],
    'gender': ['M', 'M', 'M', 'M']
})

# 查找重复行
duplicate_rows = df.duplicated()
print(duplicate_rows)

这段代码将返回一个布尔值的列表,用于指示每一行是否已经出现过:

0    False
1    False
2    False
3     True

在这个例子中,第四行重复了。但是有时候我们希望在特定的列中查找重复行,而不是整个数据框。为了这样做,我们可以使用 subset 参数来指定要查找的列。下面是一个例子:

import pandas as pd

# 创建一个数据框
df = pd.DataFrame({
    'name': ['Tom', 'Jerry', 'Mike', 'Tom'],
    'age': [22, 23, 24, 22],
    'gender': ['M', 'M', 'M', 'M']
})

# 在 name 和 age 列中查找重复行
duplicate_rows = df.duplicated(subset=['name', 'age'])
print(duplicate_rows)

这段代码将返回:

0    False
1    False
2    False
3     True
dtype: bool

这个例子中,我们只在 nameage 列中查找重复行。结果与前一个例子相同,因为前四行都包含相同的 nameage 值。

如果您需要查找重复行的数量,可以使用以下代码:

import pandas as pd

# 创建一个数据框
df = pd.DataFrame({
    'name': ['Tom', 'Jerry', 'Mike', 'Tom'],
    'age': [22, 23, 24, 22],
    'gender': ['M', 'M', 'M', 'M']
})

# 在 name 和 age 列中查找重复行的数量
num_duplicate_rows = len(df[df.duplicated(subset=['name', 'age'])])
print(num_duplicate_rows)

这段代码将返回:

1

这个例子中,我们只在 nameage 列中查找重复行,并计算了重复行的数量(即结果中 True 的数量)。结果为 1,因为只有一行数据是重复的。

总之,使用 duplicated() 函数,您可以方便地在数据框中查找重复行。通过设置 subset 参数,您可以指定要考虑重复的列。最终,您可以计算重复行的数量,以便更好地理解您的数据。