AnswerBun.com

Почему не пропадают значения после применения .dropna()?

У меня в фрейме данных есть колонки с нулевыми значениями. Когда я делаю:

df.isnull().sum()

в списке колонок я наблюдаю следущее:

open_acc                  0
pub_rec                   0
pub_rec_bankruptcies    535
purpose                   0
revol_bal                 0
revol_util              276
sub_grade                 0
term                      0

Нужно убрать эти ряды, таким образом я делаю:

df['revol_util'].dropna()
df['pub_rec_bankruptcies'].dropna()

Однако, после этого ситуация не меняется, хотя и ошибки тоже никакой не выдается.

One Answer

Большинство методов в Pandas создают новый объект (видоизмененную копию) и возвращают этот новый объект, не изменяя при этом оригинальный объект (DataFrame, Series, etc.). Иногда можно воспользоваться параметром inplace=True, для того чтобы изменить исходный объект вместо того, чтобы возвращать новый. Но в английской версии SO мне как то попался комментарий одного из основных разработчиков Pandas (Jeff Reback), что он сам предпочитает не использовать параметром inplace=True, т.к. в глубинах имплементации нет гарантии, что изменения будут сделаны на оригинальном объекте. Вместо этого часто происходит неявное создание нового объекта и замена оригинального обхекта новым. К сожалению, я не смог найти этот комментарий...

Метод DataFrame.dropna() по умолчанию возвращает новый фрейм (видоизменённую копию), но не меняет исходный фрейм.

Попробуйте так:

res = df.dropna(subset=['pub_rec_bankruptcies', 'revol_util'])

Correct answer by MaxU on December 26, 2020

Add your own answers!

Related Questions

@media css внешний файл

2  Asked on January 6, 2022 by evolving

   

AngularJS Error: [$injector:unpr] Unknown provider

1  Asked on January 6, 2022 by yumie

   

Список из файла

1  Asked on January 4, 2022

     

Ошибка в Fragment

1  Asked on January 4, 2022

   

Ask a Question

Get help from others!

© 2022 AnswerBun.com. All rights reserved.