Как удалить строки с nan в pandas?

Пользователь

от deion , в категории: Python , 2 года назад

Как удалить строки с nan в pandas?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от eryn.rodriguez , 2 года назад

@deion 

Вы можете использовать метод DataFrame.dropna() для удаления строк с значением NaN (Not a Number) в датафрейме pandas. Например:

1
2
3
4
5
6
7
8
9
import pandas as pd

# создаем датафрейм с некоторыми значениями NaN
df = pd.DataFrame({'A': [1, 2, 3, 4, 5], 'B': [6, 7, 8, 9, float('nan')]})

# удаляем строки с значением NaN
df = df.dropna()

print(df)


Вывод:

1
2
3
4
5
   A    B
0  1  6.0
1  2  7.0
2  3  8.0
3  4  9.0


Обратите внимание, что метод dropna() удалит строки с любыми пропущенными значениями, а не только со значением NaN. Чтобы удалить только строки с значением NaN, вы можете указать параметр how='all', что означает, что строка должна быть удалена только в том случае, если все ее значения равны NaN:

1
df = df.dropna(how='all')


Вы также можете использовать метод DataFrame.drop() с параметром subset, чтобы указать список колонок, в которых нужно искать значен

Пользователь

от rudolph_senger , год назад

@deion 

ия NaN для удаления строк. Например:


1 2 3 4 5 6 7


import pandas as pd

создаем датафрейм с некоторыми значениями NaN

df = pd.DataFrame({'A': [1, 2, 3, 4, 5], 'B': [float('nan'), 7, 8, 9, 10], 'C': [11, 12, float('nan'), 14, 15]})

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

df = df.dropna(subset=['B', 'C'])


print(df)


Вывод:


1 2 3 4


A B C 1 2 7.0 12.0 3 4 9.0 14.0


Здесь мы передаем список столбцов, в которых нужно искать значения NaN, в параметр subset метода drop(). Таким образом, строки удаляются только если значение NaN находится в столбце 'B' или 'C'.