python - 即使使用 .loc 后也出现设置与复制警告错误

标签 python pandas

我收到此错误:

C:\Users\rt\Anaconda3\lib\site-packages\pandas\core\indexing.py:337: SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead

See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
  self.obj[key] = _infer_fill_value(value)
C:\Users\rt\Anaconda3\lib\site-packages\pandas\core\indexing.py:517: SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead

See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
  self.obj[item] = s

但是,我已经在使用 .loc 了,所以不确定为什么会发生此错误。代码概要如下:

for name, group in results.groupby():
    for idx, row in group.iterrows():
        group.loc[idx, 'area'] = 10.0

我正在使用最新的 pandas (0.20.3) 和 python (3.6)

最佳答案

它告诉您正在修改您可能想要修改的数据帧的副本,而不是数据帧本身。在本例中,group 实际上是由 .groupby() 生成器创建的另一个数据帧。

您的代码保持结果不变,而是修改group。这可能不是您想要做的,这就是出现警告的原因。如果是,并且您想禁用警告,可以执行 pd.set_option('SettingWithCopyWarning', None)

关于python - 即使使用 .loc 后也出现设置与复制警告错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45538926/

相关文章:

c# - 使用属性包装方法 C#

python - 将新列插入到数据框中,该数据框根据超过 1 个变量进行计算

python - 将 pandas dataframe 转换为 PySpark RDD 时遇到问题?

python - Matplotlib:如何删除一组子图之间的间距

python - Tesseract OCR 无法检测到不同的字体大小和未水平对齐的字母

python - 基于多种条件过滤像素

python - 使用搅拌器创建平铺 map

python - 如何替换pandas中的数据框

python - 如何在 pandas dataframe python 中将名称的第一个字符转换为大写?

python - Pandas 等效于 Oracle Lead/Lag 函数