Отдельные значения в массиве MongoDB и передача во фрейм данных - PullRequest
0 голосов
/ 03 апреля 2019

Я хотел бы извлечь некоторые данные из коллекции монго и манипулировать ими, а затем объединять их.В настоящее время большая часть информации в коллекции хранится в виде большого массива, который составляет профиль пользователя, и я хотел бы выделить значения при передаче его во фрейм данных.

Вот мой текущий скрипт -

'' '

import pandas as pd
from pymongo import MongoClient


def _connect_mongo(host, port, username, password, db):

    if username and password:
        mongo_uri = 'mongodb://%s:%s@%s:%s/%s' % (username, password, host, port, db)
        conn = MongoClient(mongo_uri)
    else:
        conn = MongoClient(host, port)
    return conn[db]


def read_mongo(db, collection, query={}, host='localhost', port=27017, username=None, password=None, no_id=True):

    if query is None:
        query = {}
    db = _connect_mongo(host=host, port=port, username=username, password=password, db=db)

    cursor = db[collection].find(query)

    df =  pd.DataFrame(list(cursor))

    if no_id and '_id' in df:
        del df['_id']

    return df

if __name__ == '__main__':
    df = read_mongo('my_db', 'my_collection', {}, 'localhost', 27017)
    df.to_csv('example.csv', index=True)
''' 

Первый столбец фрейма данных - это полный массив из 10 значений.Я пытаюсь найти способ отделить эти ценности.

Заранее извиняюсь за отсутствие подробностей.

...