2017-04-04 47 views
1

我试图加入(合并)两个熊猫数据帧:df_Adf_B。我想加入上df_A.a_number = df_B.b_number熊猫:在不同类型的列上加入两个数据帧

但是,df_A.a_numberint64类型,df_B.b_numberobject型。我试着像下面合并之前,他们都转换为str,但似乎并没有工作...

df_A.a_number.astype('str') 
df_A.dtypes 

a_number  int64 
a_set object 
dtype: object 

这里是DF_B:

df_B.b_number.astype('str') 
df_B.dtypes 

b_number object 
dtype: object 

然后我试图加入DF_A和df_B:

df_C = pd.merge(df_A,df_B, how ='inner', left_on = ['a_number'], right_on = ['b_number']) 
df_C 

但是,df_C是空的(不应该是)。我猜可能是因为a_numberb_number是不同的类型,并没有正确地转换为str?任何人都可以请指教?谢谢!

回答

1

尝试保留df_A.a_number作为Int64并将df_B.b_number中的密钥也转换为Int64

df_B.b_number.astype('int') 
df_C = pd.merge(df_A,df_B, how ='inner', left_on = ['a_number'], right_on = ['b_number'])