質問編集履歴

1 書式の改善

TOA

TOA score 9

2018/08/15 09:08  投稿

indexの設定がうまくいかない
### 前提・実現したいこと
決定木分析のために下記URLのページから以下のコードを実行したところ、エラーとなりました。
https://algorithm.joho.info/machine-learning/python-scikit-learn-decision-tree/
 
### 入力したコード  
import pandas as pd
from sklearn import tree
def main():
    data = pd.read_csv("data.csv", sep=",")
    variables = ['x1', 'x2']
    clf = tree.DecisionTreeClassifier()
    clf = clf.fit(data[variables], data['x3'])
    with open('graph.dot', 'w') as f:
       f = tree.export_graphviz(clf, out_file=f)
if __name__ == "__main__":
   main()
### 発生している問題・エラーメッセージ
```
KeyError                                 Traceback (most recent call last)
<ipython-input-56-994f00b2b08b> in <module>()
    21
    22 if __name__ == "__main__":
---> 23    main()
<ipython-input-56-994f00b2b08b> in main()
    14
    15    # 分類器にサンプルデータを入れて学習(目的変数はx)
---> 16    clf = clf.fit(data[variables], data['x3'])
    17
    18    # 学習結果を出力
~\Anaconda3\lib\site-packages\pandas\core\frame.py in __getitem__(self, key)
  2677        if isinstance(key, (Series, np.ndarray, Index, list)):
  2678            # either boolean or fancy integer index
-> 2679            return self._getitem_array(key)
  2680        elif isinstance(key, DataFrame):
  2681            return self._getitem_frame(key)
~\Anaconda3\lib\site-packages\pandas\core\frame.py in _getitem_array(self, key)
  2721            return self._take(indexer, axis=0)
  2722        else:
-> 2723            indexer = self.loc._convert_to_indexer(key, axis=1)
  2724            return self._take(indexer, axis=1)
  2725
~\Anaconda3\lib\site-packages\pandas\core\indexing.py in _convert_to_indexer(self, obj, axis, is_setter)
  1325                if mask.any():
  1326                    raise KeyError('{mask} not in index'
-> 1327                                   .format(mask=objarr[mask]))
  1328
  1329                return com._values_from_object(indexer)
KeyError: "['x1' 'x2'] not in index"
```
### 試したこと
ここに問題に対して試したことを記載してください。
### 補足情報(FW/ツールのバージョンなど)
csvの中身です
x1,x2,x3
45,17.5,30
38,17.0,25
41,18.5,20
34,18.5,30
59,16.0,45
47,19.0,35
35,19.5,25
43,16.0,35
54,18.0,35
52,19.0,40
  • Python

    22375 questions

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

  • pandas

    1921 questions

    Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る