本日、私的には大変ありがたい学びがあったのでここに記すことにしました。
タイトルに示した通り、リストの中にPandas DataFrameを格納して必要に応じて呼び出して使うことができました。
また、リストに入れたDataFrameの名前は同一のもので良いことが大変ありがたいと感じました。
素人の私はpandasでDataFrameを作るたびになんだかよくわからないDataFrameの名前を用意してdf1,df2・・・などと名前を変えて作成しておりました。それが、listに格納する順番が決まっている場合はわざわざdfにまどろっこしい名前をつけることなく、リストから呼び出すことが可能です。
文で説明するのも大変なのでコードを示します。
例えば以下のように変数名が一緒で中身のみ違うdfを用意して、
リストにappendを繰り返すとlistにデータフレームを格納することができています。
dflist = []
df = pd.DataFrame([1,2],[3,4])
dflist.append(df)
df = pd.DataFrame([5,6],[7,8])
dflist.append(df)
dflist
[出力]
[ 0
3 1
4 2,
0
7 5
8 6]
リスト内のdfはインデックスで呼び出すことができ、例えば以下のように引き出して使うことができます。
dflist[0][0]
とすると
[出力]
3 1
4 2
となり、
dflist[1][0]
とすると
[出力]
7 5
8 6
となります。
数値の部分はfor分を回すことで繰り返し取り出して使用することが可能です。
例えば以下のようにして表現すると取り出すことができています。
files = ["1.csv", "2.csv"]
for i in range(0,len(files)):
print(dflist[int(i)][0])
[出力]
3 1
4 2
Name: 0, dtype: int64
7 5
8 6
Name: 0, dtype: int64
玄人の皆様にとっては当たり前のことかと思いますので生暖かい目で眺めていただければ幸いです。
私と同じビギナーの方にはこんな失敗例もあるのかと興味を持って見ていってください。
私はこの発想がなかったため、どのように実装するかグダグダと調べたり考えたりして貴重な時間をどっぷり溶かしました。