Как объединить одинаковые фреймы данных с различными типами данных в Python - PullRequest
0 голосов
/ 03 октября 2018

У меня есть два фрейма данных.

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.

Может кто-нибудь помочь мне решить эту проблему.

Заранее спасибо.

1 Ответ

0 голосов
/ 03 октября 2018

Использование 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...