Я думаю, лучше создать dict
, поэтому можно использовать concat
:
d = dict(zip(pd.date_range('1/1/2018', periods=6, freq='D'),
[df1, df2, df3, df4, df5, df6]))
df = (pd.concat(d)
.reset_index(level=1, drop=True)
.rename_axis('fname')
.reset_index()
)
или передать список DataFrames в concat
с параметром keys
:
df = (pd.concat([df1, df2, df3, df4, df5, df6],
keys=pd.date_range('1/1/2018', periods=6, freq='D'))
.reset_index(level=1, drop=True)
.rename_axis('fname')
.reset_index()
)
print (df.head(10))
fname a b
0 2018-01-01 0.075056 9.0
1 2018-01-01 0.646019 9.0
2 2018-01-01 0.656301 NaN
3 2018-01-01 0.420031 4.0
4 2018-01-01 0.239017 9.0
5 2018-01-01 0.921222 NaN
6 2018-01-02 0.225168 27.0
7 2018-01-02 1.938057 27.0
8 2018-01-02 1.968903 NaN
9 2018-01-02 1.260093 12.0