2017-04-04 12 views
1

2つのパンダデータフレーム(df_Aおよびdf_B)を結合(マージ)しようとしています。私はしかし、df_A.a_numberはタイプint64であり、df_B.b_numberはタイプobjectであるdf_A.a_number = df_B.b_numberpandas:異なるタイプの列に2つのデータフレームを結合する

に参加したいです。私は以下のようにマージする前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_numberInt64とし、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']) 
関連する問題