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(行)が反復処理されることが確認できました。
コメント