data_1 = {'ID': ['234', '456', '331', '134','372','456','765'],
'Result': ['A','A','A','A','A','A','A']}
我有第一个数据集 然后是第二个数据集
data_2 = {'ID': ['456', '132', '098', '134','372','456','234'],
'Result': ['B','B','B','B','B','B','B']}
然后是第三个数据集
data_3 = {'ID': ['111', '132', '765', '134','234','999','765'],
'Result': ['C','C','C','C','C','C','C']}
我想要的结果是
new_df = {'ID': ['234', '111', '456', '331','132','999','765'],
'Result': ['ABC','C','AB','A','BC','C','AC']}
我尝试使用左连接和 3 个数据集,但仍然无法创建新列或新数据框。在Excel中,我可以尝试从第一个数据集查找到第二个数据集,在我得到之后,我再次查找数据集3并再次从第一个数据集查找到第三个数据集。如果我查看 pandas 数据框,有什么想法吗?
您可以使用
concat
和 gorupby.agg
:
dfs = [data_1, data_2, data_3]
out = (pd.concat([d.set_index('ID') for d in dfs])
.groupby('ID').agg(''.join).reindex(data_1['ID']).reset_index()
)