MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Ottenere dati nidificati da MongoDB in un frame di dati Pandas

Uso una funzione come questa per ottenere linee JSON nidificate in un dataframe. Utilizza il pratico pandas json.normalize funzione:

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 passare i tuoi dati mongo chiamando la funzione con esso come argomento.

sanitized = json.loads(json_util.dumps(mongo_data)) carica le righe JSON come normali JSON

normalized = json_normalize(sanitized) cancella i dati

df = pd.DataFrame(normalized) lo trasforma semplicemente in un dataframe