Лучший способ сбросить ряды строк в 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)