• Автор записи:
  • Рубрика записи:Pandas
  • Время чтения:3 минут чтения
  • Комментарии к записи:0 комментариев

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

Как найти дубликаты в Python

Давайте рассмотрим несколько сценариев, чтобы определить, сколько повторяющихся строк существует в кадре данных.

Содержание

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

2. Поиск дубликатов в кадре данных для получения списка повторяющихся последних строк

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

3. Поиск повторяющихся значений в столбце

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

4. С использованием нескольких столбцов

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

5. Используя значения сортировки

Добавить комментарий