我有以下合并问题:
我有一系列行业相关数据:多年来60个不同行业的每周利润率,如下所示:
industry = pd.DataFrame({'Ind0': ['01', '02', '03', '04'],
'Ind1': ['11', '12', '13', '14'],
'Ind2': ['21', '22', '23', '24'],
'Ind3': ['31', '32', '33', '34']})
我的第二个数据框由几千只股票及其各自的行业组成(每只股票属于一个行业)
stocks = pd.DataFrame({'Stock0': ['Ind0'],
'Stock1': ['Ind1'],
'Stock2': ['Ind2'],
'Stock3': ['Ind3'],
'Stock4': ['Ind0'],
'Stock5': ['Ind1']})
我想创建一个新的数据框,其中包含来自该股票所属的正确行业的每只股票的行业时间序列,例如:
result = pd.DataFrame({'Stock0': ['01', '02', '03', '04'],
'Stock1': ['11', '12', '13', '14'],
'Stock2': ['21', '22', '23', '24'],
'Stock3': ['31', '32', '33', '34'],
'Stock4': ['01', '02', '03', '04'],
'Stock5': ['11', '12', '13', '14']})
我尝试了许多合并/连接方法但没有成功。任何帮助表示赞赏。
答案 0 :(得分:2)
这是你想要的吗?
stocks.T.merge(industry.T,left_on=0,right_index=True).drop(['key_0','0_x'],axis=1).rename(columns={'0_y':0}).T
Out[189]:
Stock0 Stock4 Stock1 Stock5 Stock2 Stock3
0 01 01 11 11 21 31
1 02 02 12 12 22 32
2 03 03 13 13 23 33
3 04 04 14 14 24 34