gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 09:36:22 25 4
gpt4 key购买 nike

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

第一个数据框:

 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)

有没有简单的方法可以做到这一点?

最佳答案

merge 之前使用 melt

newdf2=df2.reset_index().melt('index').rename(columns={'index':'name','variable':'date'})

df3=df1.merge(newdf2,how='left')
df3
date name value
0 2016-11-29 aapl x1
1 2016-11-29 msft x2
2 2016-11-29 ge x3
3 2016-11-29 jpm x4
4 2016-11-30 aapl y1
5 2016-11-30 msft y2
6 2016-11-30 ge y3
7 2016-11-30 jpm y4

关于python - 使用 2 个标识符合并数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53568412/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com