python 在用merge函数的时候出现这种错误
ValueError: You are trying to merge on object and int64 columns.
查找原因:
发现原因是因为:数据库在同步的时候不知道是谁把字段tenant_id
同步出来的时候一个是varchar
在另外一张表中是int
类型,转化成DataFrame的时候便出现了这种问题。
解决方法:
一、软转换(类型自动推断)
版本0.21.0引入了infer_objects()
方法,用于将具有对象数据类型的DataFrame的列转换为更具体的类型。
例如,用两列对象类型创建一个DataFrame,其中一个保存整数,另一个保存整数的字符串:
然后使用infer_objects(),可以将列’a’的类型更改为int64:
df = df.infer_objects()
二、astype强制转换
将指定的列强制转换成指定类型
df.astype(int)。