2017-04-05 9 views
0

マイコード:はTypeError:「DATAFRAME」オブジェクトは、変更可能ですので、彼らはハッシュ化することができません

samples = pd.read_csv("https://archive.ics.uci.edu/ml/machine-learning-databases/wine/wine.data", sep=',',header=None) 
varieties = pd.DataFrame(samples.iloc[:,0]) 
kmeans = KMeans(n_clusters = 3) 
labels = kmeans.fit_predict(samples) 
#setting 'labels' according to given data 
labels += 1 
#converting 'labels' to pandas DataFrame 
labels = pd.DataFrame(labels) 
df = pd.DataFrame({'labels':[labels], 'varieties':[varieties]}) 
ct = pd.crosstab(df['labels'],df['varieties']) 

私は「クロス集計」機能のためにこれらのデータフレーム(ラベルや品種)を使用したいです。 どうすればいいのか教えてください。

+1

[「TypeError例外: 『データフレーム』オブジェクトが可変であり、従ってそれらはハッシュすることができない」パンダのデータフレームのインデックスをソートしながら]の可能な重複(http://stackoverflow.com/questions/43054217/typeerror-dataframe-objects - 変更不可能 - したがって、それらをハッシュすることはできません。 – Jedi

答えて

0

なぜ別のデータフレームにラベルを保存していますか?バリエーションのデータフレームの新しい列として保存する方が簡単ですし、その2つの列間でクロスタブを実行することもできます。

samples = pd.read_csv("https://archive.ics.uci.edu/ml/machine-learning-databases/wine/wine.data", sep=',',header=None) 
varieties = pd.DataFrame(samples.iloc[:,0]) 
kmeans = KMeans(n_clusters = 3) 
varieties['labels'] = kmeans.fit_predict(samples) 
#setting 'labels' according to given data 
varieties['labels'] += 1 
pd.crosstab(varieties.iloc[:,0], varieties['labels']) 
関連する問題