2017-07-26 77 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:

  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

我认为你需要的所有DataFrame小号追加到list然后用concat与参数keys,也为除去第二级添加reset_index与参数drop

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

ÿ你可以在字典上使用pd.concat

lst = ['20170724','20170725','20170726'] 
pd.concat({k: pd.read_csv('somecsv.{}'.format(i)) for k in lst}) 
相关问题