Python: как удалить значения NaN — методы удаления нечисловых значений

Чтобы удалить значения NaN (не число) в Python, вы можете использовать различные методы в зависимости от структуры данных, с которой вы работаете. Вот несколько подходов, которые вы можете использовать:

  1. Использование библиотеки pandas:
    Если вы работаете с данными, хранящимися в DataFrames или Series pandas, вы можете использовать метод dropna()для удаления строк или столбцов. содержащие значения NaN. Например:

    import pandas as pd
    # Remove rows with NaN values
    df.dropna(axis=0, inplace=True)
    # Remove columns with NaN values
    df.dropna(axis=1, inplace=True)
  2. Использование библиотеки NumPy.
    Если вы работаете с массивами или матрицами с помощью NumPy, вы можете использовать функцию isnan()для идентификации значений NaN, а затем использовать логическое индексирование для отфильтруйте их. Например:

    import numpy as np
    # Remove NaN values from an array
    array = np.array([1, 2, np.nan, 4, np.nan])
    array = array[~np.isnan(array)]
  3. Использование генераторов списков.
    Если вы работаете со списками, вы можете использовать генератор списков для фильтрации значений NaN. Например:

    my_list = [1, 2, float('nan'), 4, float('nan')]
    my_list = [x for x in my_list if not math.isnan(x)]
  4. Использование модуля math:
    Вы можете использовать функцию math.isnan(), чтобы проверить, является ли значение значением NaN, а затем удалить его из список. Однако этот метод требует импорта модуля math. Например:

    import math
    my_list = [1, 2, float('nan'), 4, float('nan')]
    my_list = [x for x in my_list if not math.isnan(x)]
  5. Использование функции filter():
    Функция filter()может использоваться для удаления значений NaN из списка. Вот пример:

    my_list = [1, 2, float('nan'), 4, float('nan')]
    my_list = list(filter(lambda x: not math.isnan(x), my_list))