【发布时间】:2018-01-27 14:35:17
【问题描述】:
我正在使用著名的 Titanic 数据集来解决我的第一个 Kaggle 问题。我陷入了数据集。 我想替换 Age 性别明智的 NaN 值,例如“男性”的缺失值应替换为男性的平均年龄,反之亦然。 虽然我的代码运行良好但出现以下异常: “设置与复制警告: 试图在 DataFrame 中的切片副本上设置一个值 请参阅文档中的注意事项:http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy self._update_inplace(new_data)"
import pandas as pd
df=pd.read_csv('train.csv')
df[(df['Sex']=='male') & (df['Age'].apply(np.isnan))]['Age'].fillna(df[df['Sex']=='male']['Age'].mean(),inplace=True)
【问题讨论】:
-
这不是一个例外,这只是一个警告。如果你用谷歌搜索那个警告文本,就会有很多信息。在很多情况下,获得预期结果没有任何区别。
-
糟糕,我刚刚检查过了,谢谢,但是 Age 中的 NaN 值仍然没有被替换:
-
无论如何,你得到的答案比你现有的代码优雅得多,不管是否被骗:)