2017-07-26 7 views
2

forループで複数のデータフレームを作成し、それらを連結します。正常に動作します。しかし、私はインデックスとしてループ変数を含める必要があります。私は、インデックスとしてループ変数を設定する方法を見つけるカントインデックスをループ変数とする複数のデータフレームを連結する

maindf=pd.DataFrame() 
for i in ['20170724','20170725','20170726']: 
    a=pd.read_csv("somecsv."+str(i)) 
    maindf = pd.concat(maindf,a,axis=0) 
maindfため

期待OP:私はあなたがlistにすべてDataFrame Sを追加し、その後にも、パラメータkeysconcatを使用する必要があると思う

  A B C 
20170724 1 2 3 
     4 5 6 
     7 8 9 
20170725 11 22 33 
     44 55 66 
     77 88 99 
20170725 111 222 333 
     444 555 666 
     777 888 999 

答えて

1

dfs = [] 
vals = ['20170724','20170725','20170726'] 
for i in vals: 
    a=pd.read_csv("somecsv."+str(i)) 
    dfs.append(a) 
maindf = pd.concat(dfs,keys=vals).reset_index(level=1, drop=True) 
+1

ありがとう@jezrael – pythonRcpp

1

Y:第二レベルパラメータdropreset_indexを追加、削除辞書にpd.concatを使用できます。

lst = ['20170724','20170725','20170726'] 
pd.concat({k: pd.read_csv('somecsv.{}'.format(i)) for k in lst}) 
関連する問題