如何在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