Python报错 SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame ...
时间: 2023-06-24 12:04:32 浏览: 191
报错提示
这个警告通常出现在你在对 DataFrame 进行切片操作后,对切片结果进行赋值操作时。这个警告的原因是可能会修改 DataFrame 的原始数据,而 Pandas 无法确定你是想要修改原始数据还是切片结果。
解决这个问题的方法有两种:
1.使用 loc 函数进行切片和赋值操作,因为 loc 函数是针对原始 DataFrame 的操作,不会出现这种警告。
2.在对 DataFrame 进行切片操作时,使用 copy() 函数创建一个新的 DataFrame,然后对新的 DataFrame 进行赋值操作。
例如:
```python
# 使用 loc 函数进行操作
df.loc[df['column_name'] > 5, 'new_column_name'] = 10
# 使用 copy() 函数创建新的 DataFrame
new_df = df[df['column_name'] > 5].copy()
new_df['new_column_name'] = 10
```
这样就能避免 SettingWithCopyWarning 警告了。
阅读全文