Pandas 我如何连接或合并2个数据帧,在这2个数据帧中,如果left\u on/right\u on键相同,我将为每一行获得一个新列?

Pandas 我如何连接或合并2个数据帧,在这2个数据帧中,如果left\u on/right\u on键相同,我将为每一行获得一个新列?,pandas,dataframe,pandas-groupby,Pandas,Dataframe,Pandas Groupby,给定2个数据帧: DF1 身份证件 名称 123 吉姆 456 上下快速移动 我没有打一场硬仗。请按照下面的解释和编码进行尝试 df3=pd.merge(df1,df2, how='left', on='ID')#Merge the two dfs df3=df3.groupby(['ID','Name'])['JobCode'].unique().reset_index()# JobCode to list df3[['JobCode','JobCode_x']]=pd.DataFrame(d

给定2个数据帧: DF1

身份证件 名称 123 吉姆 456 上下快速移动
我没有打一场硬仗。请按照下面的解释和编码进行尝试

df3=pd.merge(df1,df2, how='left', on='ID')#Merge the two dfs
df3=df3.groupby(['ID','Name'])['JobCode'].unique().reset_index()# JobCode to list
df3[['JobCode','JobCode_x']]=pd.DataFrame(df3['JobCode'].tolist(), index= df3.index)#Create required columns




ID    Name JobCode JobCode_x
0  123  Jim     H1B      None
1  456  Bob     H1B       H2B

它很接近,但df3[['JobCode','JobCode_x']]=pd.DataFrame(df3['JobCode'].tolist(),index=df3.index)要求列号与键(本例中为列表)相同不,一点也不。从样本中,您注意到这是可能的。提供的样本是否与实际情况不同?是的,让我编辑我的问题,使之更适合我正在尝试做的事情。一些数据是合法的,所以我会更改它。
newdf=pd.merge(cdf,cldf,how='left',left'on='id',right'u on='Dealer'id')合并两个dfs newdf=newdf.groupby(['record\u id','model\u year'])['vin'].unique().reset#index()#作业代码以列出newdf['vin',vin'x']=pd.DataFrame(newdf vin'].tolist(),index=newdf.index)#创建所需列
ValueError:列的长度必须与keyunderstand相同,如果我在一个id下有5个唯一的VIN,我可能需要创建VIN 1、VIN 2、VIN 3、VIN 4、VIN 5列,在下一个列上,没有匹配项,然后是下一个3。