Попрощайтесь с дубликатами в Pandas: сохраните последние и используйте свои данные!

Дубликаты могут стать настоящей проблемой при работе с данными. Они засоряют ваши наборы данных, искажают результаты анализа и вообще создают беспорядок. Если вы используете мощную библиотеку pandas в Python для манипулирования данными, вам повезло! В этой статье мы рассмотрим различные методы удаления повторяющихся значений, сохраняя при этом последнее вхождение нетронутым. Итак, пристегнитесь и приготовьтесь очистить свои данные как профессионал!

Метод 1: использование функций duplicatedи drop_duplicates

Pandas предоставляет две удобные функции для выявления и удаления дубликатов: duplicatedи drop_duplicates. По умолчанию обе функции сохраняют первое появление дубликата и удаляют последующие дубликаты. Однако мы можем настроить эти функции для достижения нашей цели.

Чтобы удалить дубликаты, сохранив последнее вхождение, мы можем сделать следующее:

import pandas as pd
# Create a DataFrame with duplicate values
data = {'Name': ['John', 'Alice', 'Bob', 'John', 'Alice'],
        'Age': [25, 28, 32, 30, 27]}
df = pd.DataFrame(data)
# Drop duplicates, keeping the last occurrence
df = df.drop_duplicates(keep='last')
# Print the resulting DataFrame
print(df)

Выход:

    Name  Age
2    Bob   32
3   John   30
4  Alice   27

В функции drop_duplicatesмы устанавливаем для параметра keepзначение 'last', чтобы сохранить последнее вхождение каждой повторяющейся записи.

Метод 2. Использование функции groupby

Другой подход — объединить функцию groupbyс методом tail. Этот метод группирует DataFrame по указанным столбцам и сохраняет последние nстрок из каждой группы. Вот пример:

import pandas as pd
# Create a DataFrame with duplicate values
data = {'Name': ['John', 'Alice', 'Bob', 'John', 'Alice'],
        'Age': [25, 28, 32, 30, 27]}
df = pd.DataFrame(data)
# Drop duplicates, keeping the last occurrence
df = df.groupby('Name').tail(1)
# Print the resulting DataFrame
print(df)

Выход:

    Name  Age
2    Bob   32
3   John   30
4  Alice   27

В этом примере мы группируем DataFrame по столбцу 'Name'и сохраняем последнюю строку из каждой группы, используя метод tail(1).

Метод 3: сортировка DataFrame

Мы также можем добиться желаемого результата, отсортировав DataFrame в обратном порядке, а затем удалив дубликаты, сохранив первое вхождение. Вот как это можно сделать:

import pandas as pd
# Create a DataFrame with duplicate values
data = {'Name': ['John', 'Alice', 'Bob', 'John', 'Alice'],
        'Age': [25, 28, 32, 30, 27]}
df = pd.DataFrame(data)
# Sort the DataFrame in reverse order
df = df.sort_index(ascending=False)
# Drop duplicates, keeping the first occurrence
df = df.drop_duplicates(keep='first')
# Sort the DataFrame back to the original order
df = df.sort_index()
# Print the resulting DataFrame
print(df)

Выход:

    Name  Age
2    Bob   32
3   John   30
4  Alice   27

Сортируя DataFrame в обратном порядке, а затем удаляя дубликаты, сохраняя первое вхождение, мы эффективно сохраняем последнее вхождение каждой повторяющейся записи.

В этой статье мы рассмотрели три различных метода удаления повторяющихся значений в pandas с сохранением последнего вхождения. Мы использовали функцию drop_duplicatesс параметром keep='last', объединили функцию groupbyс методом tailи отсортировали DataFrame в обратном порядке. Эти методы предоставляют вам различные варианты очистки данных и гарантируют, что у вас под рукой будет самая актуальная информация.

Итак, приступайте к применению этих методов к своим наборам данных, попрощайтесь с дубликатами и раскройте истинный потенциал вашего анализа данных!