如何合并一列中具有多个元素的两个数据帧



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

数据帧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

通过DataFrame.merge和左联接的拆分值使用DataFrame.explode

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

最新更新