Używam takiej funkcji, aby uzyskać zagnieżdżone wiersze JSON w ramce danych. Używa przydatnego pandas json.normalize
funkcja:
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
Po prostu przekaż swoje dane mongo, wywołując funkcję z nimi jako argumentem.
sanitized = json.loads(json_util.dumps(mongo_data))
ładuje linie JSON jako zwykły JSON
normalized = json_normalize(sanitized)
rozpakowuje dane
df = pd.DataFrame(normalized)
po prostu zamienia go w ramkę danych