sql >> Base de Datos >  >> NoSQL >> MongoDB

Obtener datos anidados de MongoDB en un marco de datos de Pandas

Uso una función como esta para obtener líneas JSON anidadas en un marco de datos. Utiliza el útil pandas json.normalize función:

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

Simplemente pase sus datos mongo llamando a la función como argumento.

sanitized = json.loads(json_util.dumps(mongo_data)) carga las líneas JSON como JSON normal

normalized = json_normalize(sanitized) anida los datos

df = pd.DataFrame(normalized) simplemente lo convierte en un marco de datos