Как создать фрейм данных из массива объектов, используя панд? - PullRequest
0 голосов
/ 01 ноября 2019

У меня есть коллекция, которая содержит несколько документов, каждый документ содержит разные объекты, но есть определенный объект, который представляет собой массив объектов, содержащих файл Excel (строки и столбцы).

Я уже установил соединение URI, используя pymongo и pandas, чтобы создать фрейм данных, но мне нужно создать фрейм данных из массива объектов.

Вот какдокумент выглядит так: объект с именем «data» - это тот, который я хочу отобразить для создания фрейма данных

enter image description here

Thisэто то, что я сделал до сих пор:

  1. Я проиндексировал точную строку и столбец, чтобы выбрать файл Excel, из которого я хочу создать фрейм данных из
  2. Я создаюпеременная, которая содержит это индексирование

    collection_project.iloc [58:, 7]

    excel = collection_project.iloc [58:, 7]

И это окончательный результат:

enter image description here

1 Ответ

0 голосов
/ 01 ноября 2019

Например, если конкретный объект в массиве данных, который вы хотите иметь индекс 5, это может работать (вероятно):

import pandas as pd
from pymongo import MongoClient
CON = MongoClient("<your connection uri>")
db = CON["<YourDatabase>"]
coll = db["<YourCollection>"]
index = 5
pipeline = [{"$project":{"data": { "$arrayElemAt": [ "$data", index]},}},{"$replaceRoot":{"newRoot":"data"}}]
cursor = coll.aggregate(pipeline)
records = list(cursor)
df = pd.DataFrame(records)
...