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内の範囲外ですといった内容なので、存在しない行を指定するとエラーになることがわかりました。





コメント