

初歩的な質問ですみません．  
1 o_000.csv, 1o_001.csv .....とcsvのファイルを一気に取り込みそれぞれを  
data0,data1,data2,......にしたいです．

[code]

    while(i<100):
        data+str(i)=pd.read_csv('1 o_0'+str(i)+'.csv')
        i+=1
    
[/code]

data+str(i)の部分が間違っているのですが，どのように書けば目的とする結果が得られるでしょうか？


CC BY-SA 3.0
2017-06-22T02:24:34.693
35793
2017-06-22T04:32:36.140
2017-06-22T02:38:20.833
7837
23647
question
python pandas
pandasでcsvをまとめて取り込みたい


リストを使うことで目的とする結果が得られると思いますがいかがでしょうか。  
※`range(0, 3)`はテスト用です。任意の数値に書き換えてください。  
※※質問文の`1o_001.csv`は`1 o_001.csv`の誤字と想定してコードを作成しています。

[code]

    import pandas as pd
    data = []
    for i in range(0, 3):
      fileName = '1 o_%03d.csv' % i
      data.append(pd.read_csv(fileName))
    #答え合わせ
    data2
    
[/code]

下記のコードのように組み込み関数の`exec`を使うことで動的な変数宣言はできますが、正直なところ下記のようなコーディングは可能な限り避けたほうが良いと思います。

[code]

    import pandas as pd
    for i in range(0, 3):
      fileName = '1 o_%03d.csv' % i
      #動的にdataXを宣言して結果を格納
      exec('data%d = pd.read_csv(fileName)' % i)
    #答え合わせ
    data2
    
[/code]


CC BY-SA 3.0
2017-06-22T04:28:44.343
35801
2017-06-22T04:28:44.343
9820
35793
answer


data0,data1,data2という変数名を生成することはできませんので  
data[0],data[1],data[2]...というlist(配列)を作ることになります。  
配列はpythonのみならずあらゆる言語における基本と言えますので下記の回答をそのまま使うことなく、ご自身で理解された方が良いと思います。  
[公式チュートリアル](https://docs.python.jp/3/tutorial/introduction.html#lists)

コードとしては受け取りを配列にする以外に、ファイルの生成方法が数字の桁数によって不正動作になってしまうので  
桁揃えの処理も加える必要があります。

[code]

    data=[]
    while(i<100):
        data.append(pd.read_csv('1 o_%03d.csv'%i))
        i+=1
    
[/code]

もしくはあらかじめ100個ということがわかっているのならば

[code]

    data=[0]*100
    while(i<100):
        data[i] = pd.read_csv('1 o_%03d.csv'%i)
        i+=1
    
[/code]

両者とも以下のような形で取り出し可能

[code]

    print(data[5]) #6番目のデータを表示
    
[/code]


CC BY-SA 3.0
2017-06-22T04:32:36.140
35802
2017-06-22T04:32:36.140
19716
35793
answer