繁体   English   中英

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

[英]how to merge same valued data frames with different data types in 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公共变量数据类型。

任何人都可以帮我解决这个问题。

提前致谢。

使用astypedtypes

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM