查找 3 个数据集并为 pandas 数据框中的结果创建新列

问题描述 投票:0回答:1
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 数据框,有什么想法吗?

python pandas left-join vlookup
1个回答
0
投票

您可以使用

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()
       )
© www.soinside.com 2019 - 2024. All rights reserved.