Чтобы эффективно находить дубликаты в 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