У меня есть такой фрейм данных:
+-----+-------+---------+
| 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