Предположим, у меня есть два фрейма данных этого формата (назовите их df1
и df2
):
+------------------------+------------------------+--------+
| user_id | business_id | rating |
+------------------------+------------------------+--------+
| rLtl8ZkDX5vH5nAx9C3q5Q | eIxSLxzIlfExI6vgAbn2JA | 4 |
| C6IOtaaYdLIT5fWd7ZYIuA | eIxSLxzIlfExI6vgAbn2JA | 5 |
| mlBC3pN9GXlUUfQi1qBBZA | KoIRdcIfh3XWxiCeV1BDmA | 3 |
+------------------------+------------------------+--------+
Я ищу, чтобы получить dataframe всех строк, которые имеют общий user_id
в df1
и df2
. (т.е. если a user_id
находится в df1
и df2
, включите две строки в выходной блок данных)
Я могу придумать много способов приблизиться к этому, но все они ударяют меня как неуклюжий. Например, мы могли бы найти все уникальные user_id
в каждом фрейме данных, создать набор из них, найти их пересечение, отфильтровать два кадра данных с результирующим набором и объединить два отфильтрованных файла данных.
Может быть, лучший подход, но я знаю, что Pandas умный. Есть ли более простой способ сделать это? Я посмотрел на merge
, но я не думаю, что мне нужно.