首页 > 解决方案 > 关于 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]

阅读相关文档后我对这个消息不是很清楚,修改这行操作的最佳实践应该是什么?此外,有什么方法可以抑制这种消息而不让它们打印出来。

标签: python-3.xpandasdataframe

解决方案


最好/推荐的方法是使用lociloc(索引)。您的分配方法是尝试分配给数据框的副本。使用 loc 或 iloc 有助于分配给实际的数据帧。


df_data.loc[i, 'id'] = test[‘area’][i]

df.iloc[i,j]=1

您将在 pandas 警告消息中提供的链接中看到更详细的讨论。


推荐阅读