合并两个Pandas Dataframes

时间:2017-10-03 02:40:17

标签: python pandas dataframe merge

我有以下合并问题:

我有一系列行业相关数据:多年来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']})

我尝试了许多合并/连接方法但没有成功。任何帮助表示赞赏。

1 个答案:

答案 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