45127


for i in range(10):  
dfi=pd.DataFrame({ 'A','B'})

みたいにしたとき、dfiのiの部分が1,2,3,...と変わって結果的に  
df1  
df2  
df3  
.  
.  
df10  
という名前のDataFrameが作成されるようなプログラムを組みたいのです。  
超初心者で恐縮ですが、よろしくお願いします。


CC BY-SA 4.0
2018-06-28T08:30:54.890
45120
2018-06-28T11:44:43.723
29100
question
python pandas
pythonでforループで自動でDataFrameの名前を変えたい


本題ではないと思いますが、`pd.DataFrame({'A','B'})`はエラーになるので、`pd.DataFrame(['A','B'])`に変更して回答しておきます。

質問のとおりに回答すると、次のように書くことでできます。

[code]

    for i in range(10):
        exec("df"+ str(i) + " = pd.DataFrame(['A','B'])")
    
[/code]

また、python3.6以降であれば`f文字列`を使って次のように書くこともできます。

[code]

    for i in range(10):
        exec(f"df{i} = pd.DataFrame(['A','B'])")
    
[/code]

しかしながら、一般的にはリストを使うのが普通だし、その方が便利です。

[code]

    for i in range(10):
        df[i] = pd.DataFrame(['A','B'])")
    
[/code]

また、Pythonの繰り返しは遅いので、Pandasではできるだけ配列を使うのも避けて１つのdfにまとめて処理をするほうがベターです。


CC BY-SA 4.0
2018-06-28T10:13:39.287
45127
2018-06-28T11:44:43.723
2018-06-28T11:44:43.723
15171
15171
45120
answer