Лучший способ сбросить ряды строк в pandas

Сам по себе я нашел способ сбросить наные строки из фрейма данных pandas. Для данных dat с столбцом x, который содержит значения nan, существует ли более элегантный способ сбросить каждую строку dat, которая имеет значение nan в столбце x?

dat = dat[np.logical_not(np.isnan(dat.x))]
dat = dat.reset_index(drop=True)

Ответы

Ответ 1

Используйте dropna:

dat.dropna()

Вы можете передать параметр how, если все ярлыки нанные или какие-либо из надписей нане.

dat.dropna(how='any')    #to drop if any value in the row has a nan
dat.dropna(how='all')    #to drop if all values in the row are nan

Надеюсь, что ответит на ваш вопрос!

Изменить 1: Если вы хотите отбросить строки, содержащие значения nan только из определенных столбцов (столбцов), как это предлагает Дж. Доу в своем ответе ниже, вы можете использовать следующее:

dat.dropna(subset=[col_list])  # col_list is a list of column names to consider for nan values.

Ответ 2

Чтобы расширить Hitesh ответ, если вы хотите отбросить строки, где "x" - это nan, вы можете использовать параметр подмножества. Его ответ удалит строки, где другие столбцы также имеют nans

dat.dropna(subset=['x'])

Ответ 3

В любом случае команды в предыдущих ответах не работают, Попробуй это: dat.dropna(subset=['x'], inplace = True)