Python DataFrame:将nan值替换为相应列的中值

Python DataFrame:将nan值替换为相应列的中值,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,我的pd数据框中有一些NaN值,我希望用列的中值替换它们。我知道这非常类似于: 但是,当我尝试等效的方法时: df = df.fillna(df.median()) 我得到以下错误: Python\Python37\site-packages\pandas\core\generic.py:6287: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame See

我的pd数据框中有一些NaN值,我希望用列的中值替换它们。我知道这非常类似于:

但是,当我尝试等效的方法时:

df = df.fillna(df.median())
我得到以下错误:


Python\Python37\site-packages\pandas\core\generic.py:6287: SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame

See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
  self._update_inplace(new_data)
Python\Python37\site-packages\pandas\core\frame.py:4244: SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame

See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
  **kwargs

任何建议都将不胜感激。
谢谢

尝试
df.fillna(df.median(axis=1,skipna=True))
试图在数据帧的切片副本上设置一个值:您的
df
是某个更大数据帧的一部分吗?请在该行上方执行
df=df.copy()
。你可以在《是的,我从一本更大的书中摘录了它》中广泛阅读。如何提取它而不出现此错误?我最初使用的是:df=data.iloc[:,0:-1]同意@ALollz,复制数据帧。附加资源:如果要更新
数据
,请执行
data.iloc[:,0:-1]=df.fillna(df.median)
。如果没有,您应该包括一个。