首页 > 解决方案 > 如何在python中合并具有不同数据类型的相同值的数据帧

问题描述

我有两个数据框。

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 dtypes 我必须更改 df2 公共变量数据类型。

谁能帮我解决这个问题。

提前致谢。

标签: pythonpandasmerge

解决方案


使用者:astype_dtypes

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

推荐阅读