如何在python中合并具有不同数据类型的相同值数据帧

如何在python中合并具有不同数据类型的相同值数据帧,python,pandas,merge,Python,Pandas,Merge,我有两个数据帧 df 1:- x y z n 1 2.0 m 3 4.0 x: dtype('object') y: dtype('int64') z: dtype('float64') df 2:- x y z a n 1 2 h n 2 1 k x: dtype('object') y: dtype('object') z: dtype('object') a: dtype('int64') 现在我想在x,y,z上合并这些数据帧 我使用了下面的代码,由于变量的数据类型不

我有两个数据帧

df 1:-
x  y  z  
n  1  2.0
m  3  4.0
x: dtype('object')
y: dtype('int64')
z: dtype('float64')


df 2:-
x y z a
n 1 2 h
n 2 1 k
x: dtype('object')
y: dtype('object')
z: dtype('object')
a: dtype('int64')
现在我想在x,y,z上合并这些数据帧

我使用了下面的代码,由于变量的数据类型不同,我得到了一个错误

syntax:
df2.merge(df1,on=['x','y','z'],how='left')
我不想手动更改df2数据类型

基于df1数据类型,我必须更改df2公共变量数据类型

谁能帮我解决这个问题

提前感谢。

使用人:



我编辑了我的问题,如果你不介意的话,你能检查一下吗?@neeraja-有了示例数据,它运行良好,请检查上次编辑。
df2 = df2.astype(df1.dtypes)
print (df2.dtypes)
x     object
y      int64
z    float64
a     object
dtype: object
df = df2.astype(df1.dtypes).merge(df1,on=['x','y','z'],how='left')
print (df)
   x  y    z  a
0  n  1  2.0  h
1  n  2  1.0  k