当我想执行以下命令(从其他问题中学习)时,会出现警告。如何避免这种警告?
df['Class'] = df['Class'].astype(int)
/home/ubuntu/src/anaconda3/lib/python3.5/site-packages/ipykernel/ main .py:2:SettingWithCopyWarning: 尝试在DataFrame的切片副本上设置值。 尝试使用.loc [row_indexer,col_indexer] = value而不是
请参阅文档中的警告:http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy 来自ipykernel导入kernelapp作为app
答案 0 :(得分:1)
您需要禁用链式分配。
# Disable chained assignments
pd.options.mode.chained_assignment = None
会使它发挥作用。
答案 1 :(得分:0)
我建议您采用这种方式,而不是更改配置,尽管这会占用更多资源。具有足够的内存或小尺寸的数据,没关系。
df_ = df.copy()
df_['Class'] = df_['Class'].astype(int)
仅供参考
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.copy.html https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#indexing-view-versus-copy