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

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

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

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

pandas

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

Q&A

解決済

1回答

15552閲覧

python pandas のnot in index 対応について(scikit-learn StratifiedKFold使用時)

YoshiYoshi

総合スコア17

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

pandas

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

0グッド

0クリップ

投稿2017/12/28 09:25

編集2017/12/28 09:28

scikit-learn使用時にエラーが発生しました。
調べてもよくわからずご存知の方、ご教示頂けませんでしょうか。
よろしくお願いします。

python

1skf = StratifiedKFold(n_splits=5, random_state=1234, shuffle=True) 2skf.get_n_splits(X, y) 3for train_index, test_index in skf.split(X, y): 4 print("TRAIN:", train_index, "TEST:", test_index) 5 X_train, X_test = X[train_index], X[test_index] 6 y_train, y_test = y[train_index], y[test_index]

下記エラーが発生しました。

--------------------------------------------------------------------------- KeyError Traceback (most recent call last) <ipython-input-85-1f47be558ac0> in <module>() 3 for train_index, test_index in skf.split(X, y): 4 print("TRAIN:", train_index, "TEST:", test_index) ----> 5 X_train, X_test = X[train_index], X[test_index] 6 y_train, y_test = y[train_index], y[test_index] 7 ~/.pyenv/versions/anaconda3-5.0.0/lib/python3.5/site-packages/pandas/core/frame.py in __getitem__(self, key) 2131 if isinstance(key, (Series, np.ndarray, Index, list)): 2132 # either boolean or fancy integer index -> 2133 return self._getitem_array(key) 2134 elif isinstance(key, DataFrame): 2135 return self._getitem_frame(key) ~/.pyenv/versions/anaconda3-5.0.0/lib/python3.5/site-packages/pandas/core/frame.py in _getitem_array(self, key) 2175 return self._take(indexer, axis=0, convert=False) 2176 else: -> 2177 indexer = self.loc._convert_to_indexer(key, axis=1) 2178 return self._take(indexer, axis=1, convert=True) 2179 ~/.pyenv/versions/anaconda3-5.0.0/lib/python3.5/site-packages/pandas/core/indexing.py in _convert_to_indexer(self, obj, axis, is_setter) 1267 if mask.any(): 1268 raise KeyError('{mask} not in index' -> 1269 .format(mask=objarr[mask])) 1270 1271 return _values_from_object(indexer) KeyError: '[ 3 5 6 ..., 14994 14995 14997] not in index'

indexを見てもついておりよくわらないでいます。

X.index RangeIndex(start=0, stop=14999, step=1) y.index RangeIndex(start=0, stop=14999, step=1)

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

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

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

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

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

guest

回答1

0

ベストアンサー

X.loc[train_index, :]で試してみてください。

投稿2017/12/28 09:28

mkgrei

総合スコア8560

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

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

YoshiYoshi

2017/12/28 09:30

いきました。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問