for i in range(len(pm.df)): ... pm.df.iloc[i]['矿产状态'] = '无矿' ... <string>:2: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
时间: 2024-02-19 12:01:59 浏览: 102
pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]
这是一个警告信息,意思是你正在尝试修改一个 DataFrame 的子集,但是 Pandas 不确定你是否想要修改原始 DataFrame 或其副本。为了避免这个警告,你可以使用 `loc` 方法来访问 DataFrame 中的子集,这样就可以明确地指定你想修改的是原始 DataFrame,而不是其副本。
你可以尝试将代码改为:
```python
for i in range(len(pm.df)):
pm.df.loc[i, '矿产状态'] = '无矿'
```
这样就可以避免这个警告。同时,需要注意的是,如果你在循环中对 DataFrame 进行大量的修改操作,可能会导致程序运行变慢,因为 DataFrame 的操作是比较耗时的。你可以尝试使用 Pandas 中的一些高级函数来优化代码。
阅读全文