Scikit learn TypeError:不可损坏的类型

Scikit learn TypeError:不可损坏的类型,scikit-learn,sklearn-pandas,Scikit Learn,Sklearn Pandas,我用sklearn编写了一小段代码来做线性回归 我创建了一个2列csv文件(列名称X,Y和一些数字)和 当我读取文件时,我看到内容被正确读取-如下所示 但是,当我尝试使用命令datafile[:,:]或datafile[:,-1]引用列时,出现“unhable type”错误 当我尝试使用X作为响应,Y作为sklearn线性回归中的预测值时,我得到的值误差如下所示 我在网上查看了一下,但无法找出我的代码或文件有什么问题。请帮忙 import pandas as pd datafile=pd.re

我用sklearn编写了一小段代码来做线性回归

我创建了一个2列csv文件(列名称X,Y和一些数字)和 当我读取文件时,我看到内容被正确读取-如下所示

但是,当我尝试使用命令
datafile[:,:]
datafile[:,-1]
引用列时,出现“unhable type”错误

当我尝试使用X作为响应,Y作为sklearn线性回归中的预测值时,我得到的值误差如下所示

我在网上查看了一下,但无法找出我的代码或文件有什么问题。请帮忙

import pandas as pd
datafile=pd.read_csv('samplelinear.csv')
datafile

     X    Y    
0    0 1.440000 
1    1 33.220000 
. . . 

print datafile.__class__
<class 'pandas.core.frame.DataFrame'>

datafile[:,:]
TypeError: unhashable type

datafile[:,:1]
TypeError: unhashable type


from sklearn.linear_model import LinearRegression
model=LinearRegression()

model.fit(datafile.X,datafile.Y)
ValueError: Found arrays with inconsistent numbers of samples: [ 1 14]
将熊猫作为pd导入
datafile=pd.read\u csv('samplelinear.csv')
数据文件
xy
0    0 1.440000 
1    1 33.220000 
. . . 
打印数据文件__
数据文件[:,:]
TypeError:不可损坏的类型
数据文件[:,:1]
TypeError:不可损坏的类型
从sklearn.linear\u模型导入线性回归
模型=线性回归()
model.fit(datafile.X,datafile.Y)
ValueError:找到样本数不一致的数组:[1 14]

如果要使用切片语法从数据帧中进行选择,则必须使用

data.iloc[:,:1]
对于第二个问题,X输入需要是一个矩阵,而不是一个向量,因此要么包含更多列,要么使用以下语法:

model.fit(pd.DataFrame(datafile.X), datafile.Y)

另一个较短的数据帧切片选项是:

 data.ix[:,:1]

这已经被弃用了,我认为是支持iloc的位置切片和loc的标签切片。谢谢Michael的评论。这是准确的。