Чтобы эффективно находить дубликаты в pandas с помощью Python, использовался метод Dupyd() с различными параметрами. Этот подход охватывает обнаружение повторяющихся строк во всех столбцах, выявление последних вхождений дубликатов, сосредоточение внимания на одном или нескольких столбцах и сортировку значений по точности.
В Pandas дубликаты — это строки в DataFrame, которые имеют одинаковые значения во всех столбцах или в указанном подмножестве столбцов. Дубликаты могут возникнуть во время сбора данных, объединения наборов данных или в результате ошибок при вводе данных.
Для Pandas поиск дубликатов в Python в строках DataFrame Pandas предоставляет метод Dupyd(). Этот метод возвращает логическую серию, указывающую, является ли каждая строка дубликатом или нет.
Синтаксис:
DataFrame.duplicated(subset=None, keep='first')
Здесь:
- subset: имена столбцов, которые следует учитывать для выявления дубликатов. По умолчанию используются все столбцы.
- keep: определяет, какие дубликаты следует пометить.
- «first»: пометить все дубликаты, кроме первого, как «True».
- «last»: пометить все дубликаты, кроме последнего, как «True».
- Lie: пометить все дубликаты как True.
Например:
import pandas as pd
data = {
'Employee ID': ['001', '002', '003', '001', '004', '002'],
'Name': ['John Doe', 'Jane Smith', 'Alice Jones', 'John Doe', 'Bob Brown', 'Jane Smith'],
'Department': ['HR', 'Marketing', 'IT', 'HR', 'IT', 'Marketing'],
'State': ['NY', 'CA', 'TX', 'NY', 'NY', 'CA']
}
df = pd.DataFrame(data)
duplicates = df.duplicated()
print(duplicates)
Вывод: для каждого второго появления данных функция Dupyd() вернет True.
0 False 1 False 2 False 3 True 4 False 5 True dtype: bool

Давайте рассмотрим несколько сценариев, чтобы определить, сколько повторяющихся строк существует в кадре данных.
- 1. Найти повторяющиеся значения в столбце
- 2. Поиск дубликатов в кадре данных для получения списка повторяющихся последних строк
- 3. Поиск повторяющихся значений в столбце
- 4. С использованием нескольких столбцов
- 5. Используя значения сортировки
1. Найти повторяющиеся значения в столбце
Чтобы найти повторяющиеся строки на основе всех столбцов в DataFrame, мы можем использовать метод Pandas Duplied(). Этот метод возвращает логическую серию, помечая дубликаты как True, за исключением их первого появления.
import pandas as pd
df = pd.DataFrame({
'OrderID': [101, 102, 103, 101, 104],
'State': ['CA', 'NY', 'TX', 'CA', 'FL'],
'Amount': [200, 150, 300, 200, 150]
})
duplicates = df[df.duplicated(keep=False)]
print(duplicates)
Выход:
OrderID State Amount 0 101 CA 200 3 101 CA 200

2. Поиск дубликатов в кадре данных для получения списка повторяющихся последних строк
Если мы хотим получить список последних вхождений повторяющихся строк, установите для параметра Keep значение «last» в функции Pandas Dupyd() в Python.
Вот код, который продемонстрирует, как Pandas находит дубликаты в Python:
import pandas as pd
df = pd.DataFrame({
'EmployeeID': [123, 124, 125, 123, 126],
'Office': ['Seattle', 'Boston', 'Seattle', 'Seattle', 'Boston'],
'Role': ['Engineer', 'Manager', 'Engineer', 'Engineer', 'Manager']
})
last_duplicates = df[df.duplicated(keep='last')]
print(last_duplicates)
Выход:
EmployeeID Office Role 0 123 Seattle Engineer

3. Поиск повторяющихся значений в столбце
Pandas находит дубликаты в Python на основе одного столбца, используя метод Dupyd() для этого конкретного столбца.
import pandas as pd
df = pd.DataFrame({
'FlightNumber': ['AA101', 'AA102', 'AA101', 'AA103', 'AA102'],
'Destination': ['New York', 'Chicago', 'New York', 'Miami', 'Chicago']
})
flight_duplicates = df[df['FlightNumber'].duplicated(keep=False)]
print(flight_duplicates)
Выход:
FlightNumber Destination 0 AA101 New York 1 AA102 Chicago 2 AA101 New York 4 AA102 Chicago

4. С использованием нескольких столбцов
Чтобы идентифицировать дубликаты на основе нескольких столбцов, создайте подмножество DataFrame перед вызовом функции Dupyd() в Python.
import pandas as pd
df = pd.DataFrame({
'ApplicantID': [1001, 1002, 1003, 1001, 1004],
'University': ['Harvard', 'MIT', 'Harvard', 'Harvard', 'MIT'],
'Major': ['CS', 'Physics', 'CS', 'CS', 'Maths']
})
uni_duplicates = df[df.duplicated(subset=['University', 'Major'], keep=False)]
print(uni_duplicates)
Выход:
ApplicantID University Major 0 1001 Harvard CS 2 1003 Harvard CS 3 1001 Harvard CS

5. Используя значения сортировки
Сортировка значений перед поиском дубликатов может быть полезна в определенных сценариях. Это помогает идентифицировать дубликаты в отсортированном порядке.
import pandas as pd
df = pd.DataFrame({
'ProductID': [2001, 2002, 2003, 2001, 2002],
'State': ['TX', 'CA', 'NY', 'TX', 'CA'],
'Sales': [500, 600, 500, 500, 600]
})
sorted_df = df.sort_values(by=['State', 'ProductID'])
sorted_duplicates = sorted_df[sorted_df.duplicated(keep=False)]
print(sorted_duplicates)
Выход:
ProductID State Sales 1 2002 CA 600 4 2002 CA 600 0 2001 TX 500 3 2001 TX 500
