我通过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
答案 0 :(得分:3)
我认为您需要将所有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 :(得分:1)
您可以在字典上使用pd.concat
。
lst = ['20170724','20170725','20170726']
pd.concat({k: pd.read_csv('somecsv.{}'.format(i)) for k in lst})