我正在处理Titanic数据集。 “机舱”列中有很多“ Nan”值。当列“ Pclass”为1,2和3时,我想根据数据帧的模式填充值。例如,当Pclass = 1时,应填充Pclass = 1时“ Cabin”中的“ NaN”值与结果数据帧的模式。当我执行我的代码时,我会收到无法删除的SettingWithCopyWarning。应该对代码进行哪些更改?
我尝试使用.loc和.ix,但是这些命令都不起作用
train[train['Pclass']==3]['Cabin'] = train[train['Pclass']==3]
['Cabin'].fillna(value=train[train['Pclass']==3]['Cabin'].mode().iloc[0])
警告是: /opt/conda/lib/python3.6/site-packages/ipykernel_launcher.py:3:SettingWithCopyWarning: 试图在DataFrame的切片副本上设置一个值。 尝试改用.loc [row_indexer,col_indexer] =值
请参阅文档中的警告:http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy 这与ipykernel软件包是分开的,因此我们可以避免导入直到
由于此警告,未更改数据框