Eu uso uma função como essa para obter linhas JSON aninhadas em um dataframe. Ele usa o prático
pandas json.normalize
função:import pandas as pd
from bson import json_util, ObjectId
from pandas.io.json import json_normalize
import json
def mongo_to_dataframe(mongo_data):
sanitized = json.loads(json_util.dumps(mongo_data))
normalized = json_normalize(sanitized)
df = pd.DataFrame(normalized)
return df
Basta passar seus dados do mongo chamando a função com ele como argumento.
sanitized = json.loads(json_util.dumps(mongo_data))
carrega as linhas JSON como JSON normal normalized = json_normalize(sanitized)
desaninha os dados df = pd.DataFrame(normalized)
simplesmente o transforma em um dataframe