

`df_1, df_2, df_3` とカラムがすべて同じなデータフレームがあるとき、

[code]

    df_1['year'].shape
    df_2['year'].shape
    df_3['year'].shape
    
[/code]

上記を `for` 文で回したく、

[code]

    for i in (1,2,3):
        df_(i)['year'].shape
    
[/code]

のように実現したいのですが、どのようにすれば自動化できますでしょうか？


CC BY-SA 4.0
2020-06-05T07:41:03.710
67323
2021-05-01T09:13:16.197
2020-06-05T08:30:59.667
3060
40492
question
python python3 pandas numpy matplotlib
複数のdataframeをfor文で回したい


次のコードのように`eval`を使えばできますが、

[code]

    for i in (1,2,3):
        eval( "df_"+str(i)+"['year'].shape")
    
[/code]

`eval`は他に方法がないときの最後の手段だと考えます。  
次のコードのように書いた方がよいと思います。

[code]

    for df in [df_1, df_2, df_3]:
        df['year'].shape
    
[/code]

どうしても番号でデータフレームを指定したいときは、あらかじめリストを作っておけばよいと思います。

[code]

    df_list = [df_1, df_2, df_3]
    for i in (1,2,3):
        (df_list[i-1])['year'].shape
    
[/code]

kunifさんのコメントにありますが、`df['year'].shape`だけでは意味のないコードです。単なる例だと解釈しました。


CC BY-SA 4.0
2020-06-05T09:12:49.370
67327
2020-06-05T09:12:49.370
35558
67323
answer