курсор pymongo на кадры данных панд - PullRequest
0 голосов
/ 02 января 2019

Мне нужно преобразовать мой курсор Mongodb в кадр данных Pandas.Я хочу избежать использования списков, напрямую использующих data = list(collection.find()), но он выходит из памяти, занимает много памяти.предложите мне эффективный способ использования списков или альтернативное решение для этого.

Я использовал список для преобразования в pandas dataframe.Он выходит из памяти и останавливает выполнение.

collection = db.get_collection('xxxyyyzzz')
data = collection.find()
for i in data:
   lst = pd.DataFrame(list.append(data))

Я хочу преобразовать курсор в фрейм данных.

1 Ответ

0 голосов
/ 02 января 2019

Вы можете использовать yield для перебора курсора. Подробнее здесь .В основном yield будет обрабатывать один элемент за раз, а не сохранять все в памяти.

def get_cursor():
    collection = db.get_collection('xxxyyyzzz')
    return collection.find()

def get_data_frames(cursor):
    for a_document in cursor:
        yield pd.DataFrame(list.append(data))

cursor = get_cursor()

for df in get_data_frames(cursor):
    // Do whatever
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...