web-dev-qa-db-ja.com

TypeError:ハッシュできないタイプ

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]
9
qurious

スライス構文を使用してデータフレームから選択する場合は、使用する必要があります

data.iloc[:,:1]

2番目の問題では、X入力はベクトルではなく行列である必要があるため、より多くの列を含めるか、次の構文を使用します。

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

pandasデータフレームをスライスするためのもう1つの短いオプションは次のとおりです。

 data.ix[:,:1]
0
Teddy Belay