Cómo lograr una unión interna en pandas

Necesito hacer efectivamente una unión interna implementada en Python.

Tengo 2 conjuntos de datos que provienen de fonts separadas pero que comparten una clave común.

Digamos (por el bien del argumento) que se ven así:

person_likes = [{'person_id': '1', 'food': 'ice_cream', 'pastimes': 'swimming'}, {'person_id': '2', 'food': 'paella', 'pastimes': 'banjo'}] person_accounts = [{'person_id': '1', 'blogs': ['swimming digest', 'cooking puddings']}, {'person_id': '2', 'blogs': ['learn flamenca']}] 

¿Cómo puedo unir mejor estos dos conjuntos de datos. Tengo algo como esto:

 joins = [] for like in person_likes: for acc in person_accounts: if like['person_id'] == acc['person_id']: join = {} join.update(like) join.update(acc) joins.append(join) print(joins) 

Esto parece funcionar bien (no lo he probado extensivamente), y a primera vista parece lo mejor que podemos hacer, pero me pregunto si hay un algoritmo conocido que sea más eficaz y también si hay un lenguaje más idiomático o pythonico. forma de hacer esto?

    Pandas parece una respuesta obvia aquí.

     import pandas as pd accounts = pd.DataFrame(person_accounts) likes = pd.DataFrame(person_likes) pd.merge(accounts, likes, on='person_id') blogs person_id food pastimes # 0 [swimming digest, cooking puddings] 1 ice_cream swimming # 1 [learn flamenca] 2 paella banjo