TypeError:不可更改的类型



我写了一小段代码来使用sklearn进行线性回归。

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

然而,我得到了";不易破碎型";当我尝试使用命令datafile[:,:]datafile[:,-1]等引用列时出错。

当我试图在sklearn的线性回归中使用X作为响应,使用Y作为预测因子时,我会得到一个Value错误,如下所示。

我上网查看了一下,但没能弄清楚我的代码或文件出了什么问题。

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]

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

data.iloc[:,:1]

对于第二个问题,X输入需要是矩阵,而不是向量,所以要么包括更多的列,要么使用语法:

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

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

 data.ix[:,:1]

相关内容

  • 没有找到相关文章

最新更新