首页 > 解决方案 > 如何合并长度不同的熊猫中的两列

问题描述

我有 2 个 df

两个df都在下面

df1

,A,B,output
1,abc,CCE,out1
2,def,CCE,out2
3,ghi,CCE,out3
4,hij,CCE,out4
5,klm,,out5

df2

,A,B
1,abc,CCE
2,def,CCE
3,lmn,CCE
4,opq,CCE
5,abc,CCE
6,klm,,

df2_expected

1,abc,CCE,out1
2,def,CCE,out2
3,lmn,CCE,
4,opq,CCE,
5,abc,CCE,out1
6,klm,,out5

例如,我实际上在第一个 df 它的 n 列和 df2 它的 n-1 列中给出了 3 列,这意味着输出列不会出现在 df2

标签: pythonpandasdataframe

解决方案


请试试这个

import pandas as pd
data1={'nu':[1,2,3,4,5], 'A':['abc','def','ghi','hij','klm'], 'B':['CCE','CCE','CCE','CCE','CCE'], 'output':['out1','out2','out3','out4','out5',]}
data2={'nu':[1,2,3,4,5], 'A':['abc','def','lmn','opq','abc'], 'B':['CCE','CCE','CCE','CCE','CCE'], 'output':[]}
df1=pd.DataFrame(data1,columns=['A','B','output'], index=data1['nu'])
df2=pd.DataFrame(data2,columns=['A','B'], index=data2['nu'])
df2.merge(df1, on=['A','B'],how='left').fillna('')


   A    B   output
0   abc CCE out1
1   def CCE out2
2   lmn CCE 
3   opq CCE 
4   abc CCE out1

推荐阅读