前提・実現したいこと
pandasを利用してcsvファイルからある条件に当てはまるデータを抽出し、その抽出したデータの値を表示する様な機能を実装中に以下のエラーメッセージが発生しました。
nの値が抽出したデータ数より大きくなった為、発生するようなエラーかと思うのですが、解決方法を教えていただきたいです。
発生している問題・エラーメッセージ
IndexError: single positional indexer is out-of-bounds
該当のソースコード
python3
1import pandas as pd 2import sys 3n = 0 4 5shain_data = pd.read_csv("/content/shain-list.csv", 6 encoding="utf-8", 7 names=('code','shimei','furigana','section','flag','nyusha_date','taisha_date')) 8 9search_name = input("検索したい名前を漢字で入力してください。") #検索したい条件 10result = shain_data[shain_data['shimei'].str.contains(search_name)] #条件で抽出 11result_shimei = result['shimei'] 12for i in result: 13 result_shimei = result['shimei'] 14 result_shimei_only = result_shimei.iloc[n] 15 n = n + 1 16 print(result_shimei_only) 17
試したこと
抽出したデータの個数を数えてfor文を回そうと思ったのですが、それが出来ませんでした。
result_shimeiの値です。
1 山村千春
5 高山照美
7 小山田美紗
35 小山新吉
Name: shimei, dtype: object
補足情報(FW/ツールのバージョンなど)
IndexError Traceback (most recent call last)
<ipython-input-9-cde2085ecb1f> in <module>()
2 for i in result:
3 result_shimei = result['shimei']
----> 4 result_shimei_only = result_shimei.iloc[n]
5 n = n + 1
6 print(result_shimei_only)
2 frames
/usr/local/lib/python3.6/dist-packages/pandas/core/indexing.py in _validate_integer(self, key, axis)
1435 len_axis = len(self.obj._get_axis(axis))
1436 if key >= len_axis or key < -len_axis:
-> 1437 raise IndexError("single positional indexer is out-of-bounds")
1438
1439 # -------------------------------------------------------------------
IndexError: single positional indexer is out-of-bounds
回答1件
あなたの回答
tips
プレビュー