Запрос PyMon go возвращает мне вложенный DataFrame - PullRequest
1 голос
/ 10 февраля 2020

Я выполняю агрегацию с очень большим набором данных. Это мой код:

pipeline = [{"$match": {"Name_md_group": "ZEITUNGEN"}}, {"$group": {"_id": {"Name_freq": "$Name_freq"}, "total": {"$sum": "$Cost"}}}]
result = pd.DataFrame(list(collection.aggregate(pipeline)))

Результат:

                                          _id         total
    0  {'Name_freq': 'WOECHENTLICH FUENFMAL'}  2.074940e+07
    1               {'Name_freq': 'SONSTIGE'}  2.284889e+07
    2           {'Name_freq': 'WOECHENTLICH'}  8.522535e+07
    3               {'Name_freq': 'TAEGLICH'}  3.700943e+07
    4  {'Name_freq': 'WOECHENTLICH SECHSMAL'}  1.489394e+09

Как мне вернуть вложенный объект? Почему это так и есть ли способ избавиться от этого? Имя столбца _id должно быть Name_freq. Кто-нибудь может мне помочь?

1 Ответ

1 голос
/ 10 февраля 2020

Поместите выражение непосредственно в _id и добавьте дополнительную $project стадию.

pipeline = [
  { $match: { Name_md_group: "ZEITUNGEN" } },
  { $group: { _id: "$Name_freq", total: { $sum: "$Cost" } } },
  { $project: { Name_freq: "$_id", _id: 0, total: 1 }}
]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...