Stack Overflow на русском Asked by Dmitrii Trubetskoy on December 26, 2020
У меня в фрейме данных есть колонки с нулевыми значениями. Когда я делаю:
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()
Однако, после этого ситуация не меняется, хотя и ошибки тоже никакой не выдается.
Большинство методов в 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
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP