python-3.x - 关于 A 值的消息正在尝试在 DataFrame 中的切片副本上设置
问题描述
在一个程序中,我有以下pandas相关的操作
df_data['id'][i] = test[‘area’][i]
该代码将起作用,但运行该程序将生成以下消息
C:\Users\AppData\Local\Temp/ipykernel_22744/4097485461.py:3: 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
df_data['area'][i] = test['area'][i]
阅读相关文档后我对这个消息不是很清楚,修改这行操作的最佳实践应该是什么?此外,有什么方法可以抑制这种消息而不让它们打印出来。
解决方案
最好/推荐的方法是使用loc
或iloc
(索引)。您的分配方法是尝试分配给数据框的副本。使用 loc 或 iloc 有助于分配给实际的数据帧。
df_data.loc[i, 'id'] = test[‘area’][i]
df.iloc[i,j]=1
您将在 pandas 警告消息中提供的链接中看到更详细的讨论。
推荐阅读
- python - ModuleNotFoundError:没有名为“tensorflow_hub”的模块
- java - 如何打破递归函数的多个实例调用?
- mongodb - Mongoose 文本索引搜索返回空数组
- python - 如何在 sqlalchemy 中编写不同的查询?
- javascript - 按下制表符时如何操作光标跳转的位置?
- php - 关于方法的 PHP 文档
- ubuntu - 安装logstash后无法在“/etc/”下找到目录logstash
- android - Android API 连接到 Wifi 网络
- c# - 使用 XUnit 将测试拆分为多个测试 - 避免 for 循环
- javascript - 使用订单号反应更改数组的选定项目索引