当前位置: 首页 > 知识库问答 >
问题:

Pandas在列车测试后显示设置,并显示COPYWARNING[重复]

仲孙阳
2023-03-14

我试图操纵一个数据帧,它是从Sci Kit Learn的train_test_split操作中收到的。系统提供了以下信息:

/usr/local/lib/python3.6/site packages/pandas/core/index.py:179:SettingWithCopyWarning:试图在数据帧中的切片副本上设置值

以下内容会在我的系统上引发警告:

import pandas as pd
from sklearn.model_selection import train_test_split
X=pd.DataFrame({'A':[2,5,7,8,9],'B':[2,5,3,51,5]})
(Xt,Xv)=train_test_split(X)
Xt.iloc[0,0]=6

我使用以下版本:

python:'3.6.1(默认值,2017年6月26日,19:29:26)\n[GCC 4.9.2]'

熊猫: 0.20.3

sklearn:0.18.2

共有3个答案

荀辰钊
2023-03-14

熊猫过于激进地发出这个警告,一般来说,你可以在这里看到一个很好的讨论:如何处理设置与熊猫CopyWarning?

但是,如果我确信我的代码按预期工作,我只需使用:

pd.options.mode.chained_assignment = None

在我档案的顶部。你总是能够知道你是否没有更新你的df,因为无论你认为你做了什么都不会在那里。

范翰池
2023-03-14

另一个选项是重置is_copy,但这似乎是train_test_split函数的错误。

Xt.is_copy=None
农诚
2023-03-14

您可以按如下方式解决此问题:

In [16]: Xt = Xt.copy()

In [17]: Xt.iloc[0,0]=6

In [18]: Xt
Out[18]:
   A  B
0  6  2
2  7  3
1  5  5

In [19]: X
Out[19]:
   A   B
0  2   2     # <--- NOTE: the value in the original DF has NOT been changed
1  5   5
2  7   3
3  8  51
4  9   5

或者,您可以使用numpy.split(...)方法

 类似资料:
  • 主要内容:get_option(),set_option(),reset_option(),describe_option(),option_context(),常用参数项在用 Pandas 做数据分析的过程中,总需要打印数据分析的结果,如果数据体量较大就会存在输出内容不全(部分内容省略)或者换行错误等问题。Pandas 为了解决上述问题,允许你对数据显示格式进行设置。下面列出了五个用来设置显示格式的函数,分别是: get_option() set_option() reset_option()

  • 我知道以前有人问过这个问题,但那篇文章中的解决方案对我不起作用。 我刚刚开始学习Android编程,当时正在做一个模型。它可以在Android Studio中正确显示,但不能在我的设备上显示。图像和背景色显示正确,但没有文本显示。我试过改变字体和字体颜色。需要改变什么? 我有另一个使用RelativeLayout的示例,它显示正确,但这个ConstraintLayout不正确。 第一个图像来自AS

  • 我正在使用一个警报对话框,显示一个菜单在应用程序的开始,我想要对话框显示我的两个值,是“名称”从一个对象,这里是警报对话框的代码: 是包含字符串“name”的对象,包含数组

  • 我从JUnit测试开始。 我正试图写一个简单的测试,却发现了这个问题。 当测试正常时,它显示在结果中:测试运行: 1,失败: 0,错误: 0,跳过: 0,时间流逝: 0.008秒 当我将一个1更改为0时,它应该失败:测试运行:0,失败:0,错误:0,跳过:0,经过的时间:0.008秒,它也不会抛出应该抛出的错误消息。 我是做错了什么,还是不应该这样?试图通过谷歌搜索,但找不到类似的问题。 我正在使

  • 我正在MyUILabel上执行2个动画。MyUILable是从UILabel派生的自定义类,它实现了只绘制边框的drawRect方法。 这是我的动画代码: 在第一个动画开始时,一条灰色的线出现在我的标签的顶部边缘,并且在所有动画完成后仍然存在。我想提一下,这条线不是我的绘图实现的一部分,即使我的绘图是空的,它也会出现。标签也比最初小一点。 所附图片不成比例。 动画之前: 动画后: 猜猜为什么会这样

  • 对一个结构体来说,须对各个元素逐个实现 fmt::Display 可能会很麻烦。问题在于每个 write! 都要生成一个 fmt::Result。彻底地实现需要处理所有的结果。出于这方面考虑,Rust 提供了 try! 宏。 在 write! 上使用 try!类似这样: // 对 `write!` 进行尝试(try),观察是否出错。若发生错误,返回相应的错误。 // 否则(没有出错)继续执行后面的