我试图操纵一个数据帧,它是从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
熊猫过于激进地发出这个警告,一般来说,你可以在这里看到一个很好的讨论:如何处理设置与熊猫CopyWarning?
但是,如果我确信我的代码按预期工作,我只需使用:
pd.options.mode.chained_assignment = None
在我档案的顶部。你总是能够知道你是否没有更新你的df,因为无论你认为你做了什么都不会在那里。
另一个选项是重置is_copy,但这似乎是train_test_split函数的错误。
Xt.is_copy=None
您可以按如下方式解决此问题:
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),观察是否出错。若发生错误,返回相应的错误。 // 否则(没有出错)继续执行后面的