首页 > 解决方案 > 如何将两个数据框与一列中的多个元素合并

问题描述

我尝试基于由元素组成的数据框和具有唯一数据框的其他数据框合并一个新的数据框。

数据框1:

        col1                 
0       A1               
1       A1,A5             
2       A1               
3       A2,A9,A3           
4       A3                         

数据框2:

        column1        column2      
0       A1             DE   
1       A2             DZ    
2       A3             DA  
3       A4             AC     
4       A5             RC       
5       A6             UC     
6       A7             TC       
7       A8             VC 
8       A9             WC
9       A10            XC  

最终数据框:

        col1         column1        column2       
0       A1           A1             DE    
1       A1,A5        A1             DE
2       A1,A5        A5             RC
2       A1           A1             DE    
3       A2,A9,A3     A2             DZ       
4       A2,A9,A3     A9             WC         
5       A2,A9,A3     A3             DA
6       A3           A3             DA

标签: pythonpandasdataframemerge

解决方案


由带有和左连接DataFrame.explode的拆分值使用:DataFrame.merge

df = (df1.assign(column1 = df1['col1'].str.split(','))
         .explode('column1')
         .merge(df2, on='column1',how='left'))
print (df)
      col1 column1 column2
0        A1      A1      DE
1     A1,A5      A1      DE
2     A1,A5      A5      RC
3        A1      A1      DE
4  A2,A9,A3      A2      DZ
5  A2,A9,A3      A9      WC
6  A2,A9,A3      A3      DA
7        A3      A3      DA

推荐阅读