A1 = pd.DataFrame({'value':[1,0],'price':[1,9]},index= ['2000/01/01','2000/01/03'] )
A2 = pd.DataFrame({'value':[1,0], 'price':[3,6]}, index = ['2000/01/02','2000/01/03'])
B1 = pd.DataFrame({'value':[1,0],'price':[2,3]},index= ['2000/01/01','2000/01/03'] )
B2 = pd.DataFrame({'value':[1,0], 'price':[3,9]}, index = ['2000/01/02','2000/01/03'])
All_df = pd.concat([A1, A2, B1,B2],axis=1,keys = ['A1','A2','B1','B2'])
All_df
A1 A2 B1 B2
price value price value price value price value
2000/01/01 1.0 1.0 NaN NaN 2.0 1.0 NaN NaN
2000/01/02 NaN NaN 3.0 1.0 NaN NaN 3.0 1.0
2000/01/03 9.0 0.0 6.0 0.0 3.0 0.0 9.0 0.0
我有一个数据框,如上All_df。 也有另一个数据框AB
AB = pd.DataFrame({ 'A':[6,3,3],'B':[3,2,1]},index = ['2000/01/01','2001/01/02','2000/01/03'])
AB
A B
2000/01/01 6 3
2001/01/02 3 2
2000/01/03 3 1
另外,我有一个映射字典。
mydict = {'A':['A1','A2'],'B':['B1','B2']}
dict告诉A1和A2与A有关,B1和B2与B有关。 根据这种关系,我想像下面那样合并All_df和AB。
A | B
A1 A2 A | B1 B2 B
price value price value A | price value price value B
2000/01/01 1.0 1.0 NaN NaN 6 | 2.0 1.0 NaN NaN 3
2000/01/02 NaN NaN 3.0 1.0 3 | NaN NaN 3.0 1.0 2
2000/01/03 9.0 0.0 6.0 0.0 3 | 3.0 0.0 9.0 0.0 1
我该如何实现?请注意,合并数据框中的A和B列名称不是强制性的,可以是您想要的任何字符串。