MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Obtendo dados aninhados do MongoDB em um quadro de dados do Pandas


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