У меня есть 2 набора dfs, которые очень велики по количеству строк около 39 КБ и количеству столбцов около 400 КБ, и с помощью команды ниже я пытаюсь заменить 2 значения NULL фрейма данных. Поскольку этот df является динамическим c, поэтому я не могу указать fillna в столбце specifici c, я хочу заменить полный df NULL на NA.
str_cols = df1.columns[df1.dtypes==object]
df1[str_cols] = df1[str_cols].fillna('.',inplace=True)
df1 = df1[pd.isnull(df1).any(1)].fillna('NA')
str_cols_1 = df2.columns[df2.dtypes==object]
df2[str_cols_1] = df2[str_cols_1].fillna('.',inplace=True)
df2=df2[pd.isnull(df1).any(1)].fillna('NA')
Я получаю это сообщение об ошибке:
C: \ Users \ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ pandas \ core \ frame.py: 4244: SettingWithCopyWarning: значение пытается быть установлено на копии фрагмент из DataFrame
См. предостережения в документации: http://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning -a-view-versus-a-copy ** kwargs Traceback (последний вызов последний) :
Строка файла 1 в файле запуска ('C: / Users /// Desktop / Pythonscript / s2.py.py', wdir = 'C: / Users // Desktop / Pythonscript' )
"C:\Users\<user>\AppData\Local\Continuum\anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 827, in runfile execfile(filename, namespace)
File "C:\Users\<user>\AppData\Local\Continuum\anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 110, in execfile exec(compile(f.read(), filename, 'exec'), namespace)
File "C:/Users/<user>/<path>/Desktop/Pythonscript/s2.py.py", line 29, in df1=df1[pd.isnull(df1).any(1)].fillna('NA')
File "C:\Users\<user>\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\frame.py", line 4244, in fillna **kwargs
File "C:\Users\<user>\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\generic.py", line 6279, in fillna value=value, limit=limit, inplace=inplace, downcast=downcast
File "C:\Users\<user>\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\internals\managers.py", line 575, in fillna return self.apply("fillna", **kwargs)
File "C:\Users\<user>\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\internals\managers.py", line 438, in apply applied = getattr(b, f)(**kwargs)
File "C:\Users\<user>\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\internals\blocks.py", line 441, in fillna return self.split_and_operate(mask, f, inplace)
File "C:\Users\<user>\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\internals\blocks.py", line 493, in split_and_operate nv = f(m, v, i)
File "C:\Users\<user>\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\internals\blocks.py", line 434, in f block = self.coerce_to_target_dtype(value)
File "C:\Users\<user>\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\internals\blocks.py", line 1079, in coerce_to_target_dtype return self.astype(object)
File "C:\Users\<user>\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\internals\blocks.py", line 559, in astype
return self._astype(dtype, copy=copy, errors=errors, values=values, **kwargs)
File "C:\Users\<user>\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\internals\blocks.py", line 639, in _astype
values = self.get_values(dtype=dtype)