我有以下代码
train_X, test_X, train_y, test_y = train_test_split(X.as_matrix(), y.as_matrix(), test_size=0.25)
其中X
是一个DataFrame,而y
是一个序列。
调用上面的函数时,出现以下警告:
/opt/conda/lib/python3.6/site-packages/ipykernel_launcher.py:1:FutureWarning:方法.as_matrix将在以后的版本中删除。改用.values。
“”“用于启动IPython内核的入口点。
然后,我尝试使用.values
进行更改,如警告中所述:
train_X, test_X, train_y, test_y = train_test_split(X.values(), y.values(), test_size=0.25)
但是出现以下错误:
TypeError跟踪(最近一次通话) 在()中 ----> 1个train_X,test_X,train_y,test_y = train_test_split(X.values(),y.values(),test_size = 0.25)
TypeError:“ numpy.ndarray”对象不可调用
我该如何解决?
答案 0 :(得分:6)
应该是:
train_X, test_X, train_y, test_y = train_test_split(X.values, y.values, test_size=0.25)
请参见this。
答案 1 :(得分:2)
根据Panda 0.25.1文档,他们建议使用DataFrame.to_numpy()而不是DataFrame.values()
所以我建议像下面这样更新它:
train_X, test_X, train_y, test_y = train_test_split(X.to_numpy(), y.to_numpy(), test_size=0.25)
答案 2 :(得分:1)
以下是有关警告背后版本的其他信息。希望对您有所帮助。
由于熊猫版本(0.23.4)与Anaconda Python 3.7.1一起随SQL Server 2019一起提供,对我来说发生了。 SQL Server 2017附带了熊猫(0.19.2),该熊猫是Anaconda Python 3.5.2的一部分,其中未发生此未来警告消息。
pandas.DataFrame.as_matrix自版本0.23.0起已弃用。参见PR。
Examples有关如何使用pandas.DataFrame.values。