Эффективная загрузка данных из pymongo в pandas. - PullRequest
0 голосов
/ 07 декабря 2018

В настоящее время я работаю с базой данных MongoDB, в которую я загрузил ~ 30 миллионов записей.

Мне нужно извлечь данные из базы данных, отфильтровать во время запроса, а затем преобразовать их в DataFrame pandas.Затем данные используются в веб-приложении для создания графиков.

Я попытался выполнить несколько запросов:

df = pd.DataFrame(list(db["demographics.sex"].find({"value": "male"})))

Это возвращает значения 1,25 млн. И занимает около 11 секунд.

Я пытался

data_list = list(db["demographics.sex"].find({"value": "male"}))

Это занимает около 8 секунд, поэтому этот шаг уже довольно трудоемкий.

Использование только запроса:

cursor = db["demographics.sex"].find({"value": "male"})

Занимает 0-1 секунду.

Таким образом, наиболее трудоемкой частью кажется не выполнение запроса и фильтра, а преобразование в DataFrame.

Есть ли какой-нибудь метод, который делает mongodb -> pandasdf более эффективным по времени?

Мне также было бы интересно, если преобразование в панд особенно неэффективно?Существует ли намного лучший способ передачи данных в веб-приложение с питанием от колб?

...