Чтобы удалить значения NaN (не число) в Python, вы можете использовать различные методы в зависимости от структуры данных, с которой вы работаете. Вот несколько подходов, которые вы можете использовать:
-
Использование библиотеки 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) -
Использование библиотеки 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)] -
Использование генераторов списков.
Если вы работаете со списками, вы можете использовать генератор списков для фильтрации значений NaN. Например:my_list = [1, 2, float('nan'), 4, float('nan')] my_list = [x for x in my_list if not math.isnan(x)] -
Использование модуля
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)] -
Использование функции
filter():
Функцияfilter()может использоваться для удаления значений NaN из списка. Вот пример:my_list = [1, 2, float('nan'), 4, float('nan')] my_list = list(filter(lambda x: not math.isnan(x), my_list))