Encontrar filas comunes (intersección) en dos marcos de datos de Pandas
Supongamos que tengo dos marcos de datos de este formato (llámalosdf1
ydf2
):
+------------------------+------------------------+--------+
| user_id | business_id | rating |
+------------------------+------------------------+--------+
| rLtl8ZkDX5vH5nAx9C3q5Q | eIxSLxzIlfExI6vgAbn2JA | 4 |
| C6IOtaaYdLIT5fWd7ZYIuA | eIxSLxzIlfExI6vgAbn2JA | 5 |
| mlBC3pN9GXlUUfQi1qBBZA | KoIRdcIfh3XWxiCeV1BDmA | 3 |
+------------------------+------------------------+--------+
Estoy buscando obtener un marco de datos de todas las filas que tienen un comúnuser_id
endf1
ydf2
. (es decir, si unuser_id
está en ambosdf1
ydf2
, incluya las dos filas en el marco de datos de salida)
Puedo pensar en muchas maneras de abordar esto, pero todas me parecen torpes. Por ejemplo, podríamos encontrar todos los únicos.user_id
En cada marco de datos, cree un conjunto de cada uno, encuentre su intersección, filtre los dos marcos de datos con el conjunto resultante y concatene los dos marcos de datos filtrados.
Tal vez sea el mejor enfoque, pero sé que Pandas es inteligente. ¿Hay una manera más sencilla de hacer esto? He miradomerge
Pero no creo que sea eso lo que necesito.