Ошибка значения при объединении двухкадров данных с одинаковым номером строки - PullRequest
0 голосов
/ 04 октября 2019

У меня есть такой фрейм данных:

+-----+-------+---------+
|  id | Time  | Name    |
+-----+-------+---------+
| 1   | 1     | John    |
+-----+-------+---------+
| 2   | 2     | David   |
+-----+-------+---------+
| 3   | 4     | Rebecca |
+-----+-------+---------+
| 4   | later | Taylor  |
+-----+-------+---------+
| 5   | later | Li      |
+-----+-------+---------+
| 6   | 8     | Maria   |
+-----+-------+---------+

Я хочу объединиться с другой таблицей на основе 'id' и времени:

  data1=pd.merge(data1, data2,left_on=['id', 'time'],right_on=['id', 'time'], how='left')

Другие данные таблицы

+-----+-------+--------------+
|  id | Time  | Job          |
+-----+-------+--------------+
| 2   | 2     | Doctor       |
+-----+-------+--------------+
| 1   | 1     | Engineer     |
+-----+-------+--------------+
| 4   | later | Receptionist |
+-----+-------+--------------+
| 3   | 4     | Professor    |
+-----+-------+--------------+
| 5   | later | Lawyer       |
+-----+-------+--------------+
| 6   | 8     | Trainer      |
+-----+-------+--------------+


Возникла ошибка:

ValueError: You are trying to merge on int64 and object columns. If you wish to proceed you should use pd.concat

То, что я пробовал:

data1['time']=data1['time'].astype(str)
data2['time']=data2['time'].astype(str)

Не сработало. Что я могу сделать? PS: в этом примере Id разные, но в моих данных Id может быть одинаковым, поэтому мне нужно объединить как по времени, так и по Id

1 Ответ

1 голос
/ 04 октября 2019

Вы пытались также привести столбец 'id' к str или int?

Извините, но у меня недостаточно репутации, чтобы просто прокомментировать ваш вопрос.

...