Дубликаты строк в наборе данных могут стать настоящей головной болью, особенно при работе с отсутствующими значениями, представленными в виде NaN (не числа). В этой статье мы рассмотрим различные методы, используя разговорный язык, и предоставим примеры кода, которые помогут вам эффективно удалять повторяющиеся строки с наименьшим влиянием на ваши данные NaN. Давайте погрузимся!
Метод 1: использование функции drop_duplicates()
Самый простой способ удалить повторяющиеся строки в Pandas — использовать функцию drop_duplicates()
. Эта функция идентифицирует и удаляет повторяющиеся строки на основе всех значений столбцов, включая NaN. Вот пример:
import pandas as pd
# Create a DataFrame with duplicate rows
data = {'Name': ['John', 'Alice', 'Bob', 'John'],
'Age': [25, 27, 30, 25],
'City': ['New York', 'London', 'Paris', 'New York'],
'Salary': [5000, 6000, 5500, 5000]}
df = pd.DataFrame(data)
# Remove duplicate rows
df = df.drop_duplicates()
print(df)
Метод 2: игнорирование значений NaN в drop_duplicates()
Чтобы удалить повторяющиеся строки, игнорируя значения NaN, вы можете передать параметр subset
в drop_duplicates()
функция. Этот параметр указывает столбцы, которые следует учитывать при выявлении дубликатов. Вот пример:
# Remove duplicate rows, ignoring NaN values
df = df.drop_duplicates(subset=['Name', 'Age', 'City'], keep='first')
print(df)
Метод 3: заполнение значений NaN перед удалением дубликатов
Если вы хотите рассматривать значения NaN как значимые данные и сохранять их при удалении дубликатов, вы можете заполнить NaN уникальными значениями перед применением drop_duplicates()
функция. Вот пример:
# Fill NaN values with unique values
df = df.fillna(df['Name'] + '_NaN')
# Remove duplicate rows
df = df.drop_duplicates()
print(df)
Метод 4. Использование функции duplicated()
.
Альтернативный подход — использование функции duplicated()
, которая помечает повторяющиеся строки как True
.. Отменяя эту логическую маску, вы можете отфильтровать повторяющиеся строки, в том числе со значениями NaN. Вот пример:
# Filter out duplicate rows, including NaN values
df = df[~df.duplicated(keep='first')]
print(df)
В этой статье мы рассмотрели несколько методов удаления повторяющихся строк в Pandas при обработке значений NaN. Используя функцию drop_duplicates()
, игнорируя значения NaN, заполняя NaN уникальными значениями или используя функцию duplicated()
, вы можете эффективно очистить свой набор данных. Не забудьте выбрать метод, который лучше всего соответствует вашим конкретным требованиям. Удачной очистки данных!