PandasにおけるDataFrameで特定の行の値を見つけてみます。(取得する)
■Python
今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows10)(pythonランチャーでの確認)
■DataFrameを作成する
PandasにおけるDataFrameで特定の行の値を取得する前に、DataFrameを作成します。
■コード
import pandas as pd data = { 'A':['White','Black','Purple','Yellow','Gray'] 'B':[10,20,30,40,50] 'C':[85,86,87,88,89] } df = pd.DataFrame(data) print(df)
インポートでPandasモジュールを呼び出します。dataという変数を作成し、その中に、今回は「A」,「B」,「C」という3つの行を追加し格納します。
格納後、dfという変数を作成し、pd.DataFrame()と記述し、格納したdataを元にDataFrameを作成。作成後、dfという変数に格納します。
■実行
このスクリプトを実行すると、作成したDataFrameが出力されます。
■iloc()を使用し、特定の行を取得する
DataFrameが用意できましたので、DataFrameで特定の行を取得するスクリプトを書いていきます。
■コード
import pandas as pd data = { 'A':['White','Black','Purple','Yellow','Gray'], 'B':[10,20,30,40,50], 'C':[85,86,87,88,89] } df = pd.DataFrame(data) print(df) print(df.iloc[3])
特定の行を取得する際は、dfという変数を作成し、格納したdataを元にDataFrameを作成。その後、DataFrameに対して、iloc()を使用します。括弧内には、何行目を取得するかを指定します。
今回は「3」と指定しています。
取得した行をprint関数で出力してみます。
■実行
このスクリプトを「df_fi_val_2.py」という名前で保存し、コマンドプロンプトから実行してみます。
実行してみると、作成したDataFrame内の行が取得され出力できることを確認できました。
■DataFrame内に存在しない行を取得する
では、次にDataFrame内に存在しない行を取得すると、どうなるのかやってみます。
■コード
import pandas as pd data = { 'A':['White','Black','Purple','Yellow','Gray'], 'B':[10,20,30,40,50], 'C':[85,86,87,88,89] } df = pd.DataFrame(data) print(df) print(df.iloc[5])
作成したDataFrameに対して、iloc()を使用し、DataFrame内に存在しない行を指定します。
指定した行を取得し、print関数で出力してみます。
■実行
Traceback (most recent call last):
File “C:\Users\user\df_fi_val_3.py”, line 13, in <module>
print(df.iloc[5])
File “C:\pg\Python38\lib\site-packages\pandas\core\indexing.py”, line 879, in __getitem__
return self._getitem_axis(maybe_callable, axis=axis)
File “C:\pg\Python38\lib\site-packages\pandas\core\indexing.py”, line 1496, in _getitem_axis
self._validate_integer(key, axis)
File “C:\pg\Python38\lib\site-packages\pandas\core\indexing.py”, line 1437, in _validate_integer
raise IndexError(“single positional indexer is out-of-bounds”)
IndexError: single positional indexer is out-of-bounds
実行してみると、IndexErrorというエラーが発生しました。エラーの内容が、指定した行が、DataFrame内の範囲外ですといった内容なので、存在しない行を指定するとエラーになることがわかりました。
コメント