Python 将索引值作为列名组合到Dataframe中

Python 将索引值作为列名组合到Dataframe中,python,pandas,dataframe,Python,Pandas,Dataframe,给定以下两个数据帧: main_table = pd.DataFrame([[1, 'A'], [2, 'B'], [3,'C']], columns=['id', 'label']) extras_table = pd.DataFrame([[1, 'e1', 'e1_Val'],

给定以下两个数据帧:

main_table = pd.DataFrame([[1, 'A'],
                           [2, 'B'],
                           [3,'C']],
                           columns=['id', 'label'])

extras_table = pd.DataFrame([[1, 'e1', 'e1_Val'], 
                             [1, 'e2', 'e2_Val'],
                             [2, 'e2', 'e2_Val2'],
                             [3, 'e1', 'e1_val3']], 
                             columns=['main_id', 'col_label', 'value'])
我想使用extras_表的“main_id”列和“col_label”在main_表上创建其他列。i、 e:

result:
   id label       e1        e2
0   1     A   e1_Val    e2_Val
1   2     B     None   e2_Val2
2   3     C  e1_val3      None
请注意,某些行可能没有所有新列。在Pandas中,这是否可能,而无需迭代extras表并添加新的列/值

xdf = extras_table.set_index(['main_id', 'col_label']) \
    .unstack().value.reset_index('main_id')

main_table.merge(xdf, left_on='id', right_on='main_id').drop('main_id', axis=1)