🗑️ Как удалять строки со значением nan в pandas: полезные методы для обработки пустых значений в данных

Для удаления строк со значениями NaN в библиотеке pandas можно использовать метод dropna(). Этот метод удаляет строки, содержащие NaN, из указанного столбца или из всей таблицы.

import pandas as pd

# Создание DataFrame с NaN значениями
data = {'A': [1, 2, NaN], 'B': [NaN, 4, 5]}
df = pd.DataFrame(data)

# Удаление строк со значениями NaN из всей таблицы
df_dropna = df.dropna()

# Удаление строк со значениями NaN из определенного столбца (например, столбца 'A')
df_dropna_col = df.dropna(subset=['A'])

Детальный ответ

Как удалить строки со значением NaN в pandas

NaN (Not a Number) - это специальное значение, которое обычно используется для представления отсутствующих или недопустимых данных. В библиотеке pandas вы можете использовать несколько методов для удаления строк с NaN значениями из своего DataFrame.

1. Метод dropna()

Метод dropna() может использоваться для удаления всех строк, содержащих NaN значения. Он позволяет вам определить оси, по которым следует выполнять удаление. Если вы хотите удалить строки с NaN значениями по всем осям, используйте следующий код:


    import pandas as pd
    
    df = pd.DataFrame({'A': [1, 2, np.nan],
                       'B': [4, np.nan, np.nan],
                       'C': [7, 8, 9]})
    
    df.dropna(inplace=True)
    print(df)
    

В результате выполнения этого кода будут удалены все строки, содержащие NaN значения, и оставшиеся строки будут выведены:


    A | B | C
    ---------
    7 | 8 | 9
    

2. Метод drop()

Если вы хотите удалить строки с NaN значениями только в определенных столбцах, вы можете использовать метод drop(). Он позволяет вам передать список столбцов, в которых нужно проверить наличие NaN значений.


    import pandas as pd
    import numpy as np
    
    df = pd.DataFrame({'A': [1, 2, np.nan],
                       'B': [4, np.nan, np.nan],
                       'C': [7, 8, 9]})
    
    df.drop(df[df['B'].isna()].index, inplace=True)
    print(df)
    

Этот код удалит строки, в которых NaN значением является значение столбца 'B':


    A | B | C
    ---------
    1 | 4 | 7
    

3. Метод loc()

Метод loc() позволяет более точно определить, какие строки должны быть удалены. Вы можете использовать метод loc() вместе с условием, чтобы выбрать строки, содержащие NaN значения, и затем удалить их с помощью метода drop().


    import pandas as pd
    import numpy as np
    
    df = pd.DataFrame({'A': [1, 2, np.nan],
                       'B': [4, np.nan, np.nan],
                       'C': [7, 8, 9]})
    
    df.drop(df.loc[df['A'].isna()].index, inplace=True)
    print(df)
    

В этом примере мы удаляем строки, в которых NaN значением является значение столбца 'A':


    A | B | C
    ---------
    1 | 4 | 7
    2 | NaN | 8
    

Таким образом, вы можете использовать методы dropna(), drop() и loc() для удаления строк, содержащих NaN значения, в библиотеке pandas. При использовании этих методов помните, что они могут изменить исходный DataFrame, поэтому, если вы хотите сохранить оригинальный DataFrame, сделайте копию перед применением этих методов.

Видео по теме

Датафреймы pandas. Удаление строк

ПРАКТИКА Pandas | NaN, Null | Работа с пропусками в Pandas | МАШИННОЕ ОБУЧЕНИЕ

Pandas Базовый №5. Операции со строками

Похожие статьи:

🗑️ Как удалять строки со значением nan в pandas: полезные методы для обработки пустых значений в данных