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)