У меня есть DataFrame
(довольно большой, трудно воспроизвести & с), для которых я наблюдаю такое поведение:Панды "fillna" игнорирует "InPlace = True" ключевое слово
>>> df.info(verbose=True,memory_usage=True,null_counts=True)
<class 'pandas.core.frame.DataFrame'>
Int64Index: 49841 entries, 0 to 49878
Data columns (total 70 columns):
...
channel 25101 non-null object
...
dtypes: bool(10), datetime64[ns](6), float64(2), int64(32), object(20)
memory usage: 23.7+ MB
>>> df.channel.fillna("Unknown",inplace=True)
>>> df.info(verbose=True,memory_usage=True,null_counts=True)
<class 'pandas.core.frame.DataFrame'>
Int64Index: 49841 entries, 0 to 49878
Data columns (total 70 columns):
...
channel 25101 non-null object
...
dtypes: bool(10), datetime64[ns](6), float64(2), int64(32), object(20)
memory usage: 23.7+ MB
IOW, оказывается, что df.channel.fillna("Unknown",inplace=True)
не имеет никакого эффекта.
Как это может быть? Это ошибка? Что я делаю неправильно ?!
PS. Резюме от комментариев:
df.is_copy
являетсяNone
df._is_view
являетсяFalse
channel
столбец, а не атрибут, потому что он внесен в списокinfo
что делает 'ДФ [! Df.channel = df.channel.fillna ('Неизвестные')]' возвращается? – Boud
Я подозреваю, что он ничего не заменяет, так как код замещения, который вы пишете, должен работать, если вы df еще не вид – Boud
"inplace: boolean, по умолчанию False Если True, заполните. Примечание: это изменит любые другие виды на этом объекте (например, фрагмент без копии для столбца в DataFrame). ". Будет ли это ядром проблемы? –