PandasにおけるDataFrameで特定の行の値を見つける(取得する)

スポンサーリンク

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

コメント

タイトルとURLをコピーしました