質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1378閲覧

プログラムエラー「KeyError:0」の解決

teruterubozu

総合スコア5

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/12/15 06:45

前提・実現したいこと

teratailを初めて利用するので記載の方法などに間違いがあったら申し訳ありません。

irisのデータセットを用いてx-means法を適用したいです。
最後の行でエラーが起きてしまうようです。
プログラムを始めたてで、エラーの内容がよく分からないため質問させていただきます。

発生している問題・エラーメッセージ

KeyError Traceback (most recent call last) ~\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\indexes\base.py in get_loc(self, key, method, tolerance) 2896 try: -> 2897 return self._engine.get_loc(key) 2898 except KeyError: pandas\_libs\index.pyx in pandas._libs.index.IndexEngine.get_loc() pandas\_libs\index.pyx in pandas._libs.index.IndexEngine.get_loc() pandas\_libs\hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item() pandas\_libs\hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item() KeyError: 0 During handling of the above exception, another exception occurred: KeyError Traceback (most recent call last) <ipython-input-42-61aa8aaabfa1> in <module> ----> 1 pyclustering.utils.draw_clusters(data=X, clusters=clusters) ~\AppData\Local\Continuum\anaconda3\lib\site-packages\pyclustering\utils\__init__.py in draw_clusters(data, clusters, noise, marker_descr, hide_axes, axes, display_result) 743 dimension = 0; 744 if ( (data is not None) and (clusters is not None) ): --> 745 dimension = len(data[0]); 746 elif ( (data is None) and (clusters is not None) ): 747 dimension = len(clusters[0][0]); ~\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\frame.py in __getitem__(self, key) 2978 if self.columns.nlevels > 1: 2979 return self._getitem_multilevel(key) -> 2980 indexer = self.columns.get_loc(key) 2981 if is_integer(indexer): 2982 indexer = [indexer] ~\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\indexes\base.py in get_loc(self, key, method, tolerance) 2897 return self._engine.get_loc(key) 2898 except KeyError: -> 2899 return self._engine.get_loc(self._maybe_cast_indexer(key)) 2900 indexer = self.get_indexer([key], method=method, tolerance=tolerance) 2901 if indexer.ndim > 1 or indexer.size > 1: pandas\_libs\index.pyx in pandas._libs.index.IndexEngine.get_loc() pandas\_libs\index.pyx in pandas._libs.index.IndexEngine.get_loc() pandas\_libs\hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item() pandas\_libs\hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item() KeyError: 0

該当のソースコード

Python

1import pyclustering 2from pyclustering.cluster import xmeans 3import numpy as np 4import matplotlib 5import matplotlib.pyplot as plt 6from sklearn import datasets, preprocessing 7# datasetの読み込み 8iris_data = datasets.load_iris() 9# DataFrameに変換 10df = pd.DataFrame(iris_data.data, columns=iris_data.feature_names) 11print(df.head()) 12X=df[["sepal length (cm)","sepal width (cm)"]] 13X.shape 14 15initializer = xmeans.kmeans_plusplus_initializer(data=X, amount_centers=2) 16initial_centers = initializer.initialize() 17xm = xmeans.xmeans(data=X, initial_centers=initial_centers) 18xm.process() 19clusters = xm.get_clusters() 20pyclustering.utils.draw_clusters(data=X, clusters=clusters)

補足情報(FW/ツールのバージョンなど)

Python バージョン3.7.4

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

meg_

2020/12/15 08:17

エラー発生行はどこでしょうか?
guest

回答1

0

ベストアンサー

python

1pyclustering.utils.draw_clusters(data=X, clusters=clusters)

を下記にすることでグラフ表示可能になります。

python

1pyclustering.utils.draw_clusters(data=X.values, clusters=clusters)

イメージ説明

投稿2020/12/15 23:42

meg_

総合スコア10760

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

teruterubozu

2020/12/16 04:17

グラフ描写できました! ありがとうございます!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問