my_dict = {}
my_dict['df1'] = pd.DataFrame(np.arange(6).reshape(3,2),index = ['r1','r2','r3'],columns=['c1', 'c2'])
my_dict['df2'] = pd.DataFrame((np.arange(6)+10).reshape(3,2),index = ['r1','r2','r3'],columns=['c1', 'c2'])
my_dict['df1']
Out[1]:
c1 c2
r1 0 1
r2 2 3
r3 4 5
my_dict['df2']
Out[2]:
c1 c2
r1 10 11
r2 12 13
r3 14 15
如何将dict转换为一个数据框。索引将保持与原始索引相同,但我为列提供了一个更高级别,如下所示:
df1 df2
c1 c2 c1 c2
r1 0 1 10 11
r2 2 3 12 13
r3 4 5 14 15
答案 0 :(得分:0)
您尝试过吗:
df1=my_dict['df1']
df2=my_dict['df2']
df1.columns = [['df1']*df1.shape[1],df1.columns]
df2.columns = [['df2']*df2.shape[1],df2.columns]
df1.join(df2)
答案 1 :(得分:0)
可能您需要与other answer类似的东西。正如其他答案中的讨论所指出的,仅使用pd.concat(my_dict.values(), axis=1, keys=my_dict.keys())
不能保证.values()
和.keys()
的顺序相同。
因此,可以使用k, values = zip(*my_dict.items())
保留订单并将其与pd.concat
一起使用:
k, values = zip(*my_dict.items())
new_df = pd.concat(values, keys = k, axis=1)