以下这是我的处理这个问题的方式
1. 原因
df_data = pd.merge( df_1, df_2, on=['A', 'B'] )
如果df_1里面的A或B的类型和df_2里面的数据类型不同,一般情况是字符串(str)和数据类型(int,float)的不同,在运行时,就会出现报错:ValueError: You are trying to merge on int64 and object columns.
2.解决方法 :把df_1和df_2的对应的on=['A', 'B'] 数据类型统一化,即可。
例如:
df1_1的字段A是数据类型,df1_2的字段A是字符串类型,那么统一成字符串类型就行了。
多加一行代码:df_1['A'] = df_1['A'].astype(str)
然后在进行后面的合并 df_data = pd.merge( df_1, df_2, on=['A', 'B'] ) 即可。
还有其他的方式解决,多尝试即可。