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