Python 使用2个标识符合并数据帧

Python 使用2个标识符合并数据帧,python,pandas,dataframe,Python,Pandas,Dataframe,我有两个数据帧,我想将第二个数据帧中的数据添加到第一个数据帧中,以便得到下面的第三个数据帧: 第一数据帧: dict = [{'name': 'aapl', 'date': '2016-11-29'}, {'name': 'msft', 'date': '2016-11-29'}, {'name': 'ge', 'date': '2016-11-29'}, {'name': 'jpm', 'date': '2016-11-29'}, {'name': 'aapl', 'date': '

我有两个数据帧,我想将第二个数据帧中的数据添加到第一个数据帧中,以便得到下面的第三个数据帧:

第一数据帧:

 dict = [{'name': 'aapl', 'date': '2016-11-29'},
 {'name': 'msft', 'date': '2016-11-29'},
 {'name': 'ge', 'date': '2016-11-29'},
 {'name': 'jpm', 'date': '2016-11-29'},
 {'name': 'aapl', 'date': '2016-11-30'},
 {'name': 'msft', 'date': '2016-11-30'},
 {'name': 'ge', 'date': '2016-11-30'},
 {'name': 'jpm', 'date': '2016-11-30'}]
 df1 = pd.DataFrame(dict)
 dict = [{'2016-11-29': 'x1', '2016-11-30': 'y1'},
 {'2016-11-29': 'x2','2016-11-30': 'y2'},
 {'2016-11-29': 'x3','2016-11-30': 'y3'},
 {'2016-11-29': 'x4','2016-11-30': 'y4'}]
 df2 = pd.DataFrame(dict, index=['aapl', 'msft','ge','jpm'])
第二数据帧:

 dict = [{'name': 'aapl', 'date': '2016-11-29'},
 {'name': 'msft', 'date': '2016-11-29'},
 {'name': 'ge', 'date': '2016-11-29'},
 {'name': 'jpm', 'date': '2016-11-29'},
 {'name': 'aapl', 'date': '2016-11-30'},
 {'name': 'msft', 'date': '2016-11-30'},
 {'name': 'ge', 'date': '2016-11-30'},
 {'name': 'jpm', 'date': '2016-11-30'}]
 df1 = pd.DataFrame(dict)
 dict = [{'2016-11-29': 'x1', '2016-11-30': 'y1'},
 {'2016-11-29': 'x2','2016-11-30': 'y2'},
 {'2016-11-29': 'x3','2016-11-30': 'y3'},
 {'2016-11-29': 'x4','2016-11-30': 'y4'}]
 df2 = pd.DataFrame(dict, index=['aapl', 'msft','ge','jpm'])
第三数据帧目标:

dict = [{'name': 'aapl', 'date': '2016-11-29', 'df2': 'x1'},
 {'name': 'msft', 'date': '2016-11-29', 'df2': 'x2'},
 {'name': 'ge', 'date': '2016-11-29', 'df2': 'x3'},
 {'name': 'jpm', 'date': '2016-11-29', 'df2': 'x4'},
 {'name': 'aapl', 'date': '2016-11-30', 'df2': 'y1'},
 {'name': 'msft', 'date': '2016-11-30', 'df2': 'y2'},
 {'name': 'ge', 'date': '2016-11-30', 'df2': 'y3'},
 {'name': 'jpm', 'date': '2016-11-30', 'df2': 'y4'}]
 df3 = pd.DataFrame(dict)
有没有一种简单的方法可以做到这一点?

在合并前使用熔化

合并前使用熔化

这是因为取消堆叠df2时:

该索引可在df1的日期和名称列上合并

这是因为取消堆叠df2时:


该索引可在df1的日期和名称列上合并!!非常感谢你@塔塔格里亚:太棒了!!非常感谢你@Tartaglia yw:-
df2.unstack().to_frame('df2')
                df2
2016-11-29 aapl  x1
           msft  x2
           ge    x3
           jpm   x4
2016-11-30 aapl  y1
           msft  y2
           ge    y3
           jpm   y4