Дубликаты могут стать настоящей проблемой при работе с данными. Они засоряют ваши наборы данных, искажают результаты анализа и вообще создают беспорядок. Если вы используете мощную библиотеку 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 в обратном порядке. Эти методы предоставляют вам различные варианты очистки данных и гарантируют, что у вас под рукой будет самая актуальная информация.
Итак, приступайте к применению этих методов к своим наборам данных, попрощайтесь с дубликатами и раскройте истинный потенциал вашего анализа данных!