9

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

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

但是,当我尝试使用命令等引用列时,出现“不可哈希类型”datafile[:,:]错误datafile[:,-1]

当我尝试使用 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]
4

2 回答 2

7

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

data.iloc[:,:1]

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

model.fit(pd.DataFrame(datafile.X), datafile.Y)
于 2015-12-11T03:32:15.657 回答
0

另一个对 pandas 数据框进行切片的较短选项是:

 data.ix[:,:1]
于 2017-04-11T15:02:18.607 回答