PandasにおけるDataFrameの行を反復処理する

スポンサーリンク

PandasにおけるDataFrameの行を反復処理してみます。

■Python

今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows10)(pythonランチャーでの確認)

■DataFrameを作成する

PandasにおけるDataFrameの行を反復処理する前に、DataFrameを作成します。

■コード

import pandas as pd

df_list = [
    {'name':'Apple', 'number':1},
    {'name':'Peach', 'number':2},
    {'name':'Banana', 'number':3},
    {'name':'Strawberry', 'number':4},
    {'name':'Grape', 'number':5},
]

df = pd.DataFrame(df_list)

print(df)

インポートでPandasモジュールを呼び出します。df_listという変数を作成し、その中に複数の行を追加し格納します。

格納後、dfという変数を作成し、pd.DataFrame()と記述し、DataFrameを作成。作成後、dfという変数に格納します。

■実行

このスクリプトを実行すると、作成したDataFrameが出力されます。

■PandasにおけるDataFrameの行を反復処理する

■DataFrame.iterrows()を使用する

DataFrameの用意ができましたので、PandasにおけるDataFrameの行を反復処理するスクリプトを書いていきます。

■コード

import pandas as pd

df_list = [
    {'name':'Apple', 'number':1},
    {'name':'Peach', 'number':2},
    {'name':'Banana', 'number':3},
    {'name':'Strawberry', 'number':4},
    {'name':'Grape', 'number':5},
]

df = pd.DataFrame(df_list)

for index, row in df.iterrows():
    print(row['name'],row['number'])

DataFrameの行を反復処理させるためには、dfという変数を作成し、pd.DataFrame()と記述し、DataFrameを作成。作成後、dfという変数に格納。その後にdf.iterrows()と記述し、for文によるループ処理(繰り返し処理)を行い、DataFrameのindex(インデックス)とrow(行)を1行ずつ取得。

取得後、取得したindex(インデックス)とrow(行)を指定することで、反復処理させることができます。

今回はprint関数で取得したindex(インデックス)とrow(行)を出力してみます。

■実行

このスクリプトを「dataframe_02.py」という名前で保存し、コマンドプロンプトから実行してみます。

実行してみると、df.iterrows()と記述し取得したindex(インデックス)とrow(行)を出力させることができました。

■DataFrame.itertuples()を使用する

では、次にDataFrame.itertuples()を使用し、PandasにおけるDataFrameの行を反復処理するスクリプトを書いていきます。

■コード

import pandas as pd

df_list = [
    {'name':'Apple', 'number':1},
    {'name':'Peach', 'number':2},
    {'name':'Banana', 'number':3},
    {'name':'Strawberry', 'number':4},
    {'name':'Grape', 'number':5},
]

df = pd.DataFrame(df_list)

for row in df.itertuples():
    print(getattr(row,'name'),getattr(row,'number'))

DataFrameの行を反復処理させるためには、dfという変数を作成し、pd.DataFrame()と記述し、DataFrameを作成。作成後、dfという変数に格納。その後にdf.itertuples()と記述し、for文によるループ処理(繰り返し処理)を行い、DataFrameのrow(行)を1行ずつ取得。

取得後、取得したrow(行)をgetattr()で指定することで、反復処理させることができます。

■実行

このスクリプトを「dataframe_03.py」という名前で保存し、コマンドプロンプトから実行してみます。

実行してみると、取得したrow(行)が反復処理されることが確認できました。

コメント

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