【问题标题】:How to create a data frame out of an array of objects using pandas?如何使用熊猫从对象数组中创建数据框?
【发布时间】:2020-02-27 10:48:57
【问题描述】:
我有一个包含多个文档的集合,每个文档包含不同的对象,但是有一个特定的对象是一个包含 Excel 文件(行和列)的对象数组。
我已经使用 pymongo 和 pandas 建立了 URI 连接以创建数据框,但我需要从对象数组中创建一个数据框。
这是文档的样子:名为“数据”的对象是我想要映射出来以创建数据框的对象
这是我到目前为止所做的:
- 我索引了确切的行和列以选择要从中创建数据框的 excel 文件
-
我创建了一个包含此索引的变量
collection_project.iloc[58:,7]
excel = collection_project.iloc[58:,7]
这是最终的结果:
【问题讨论】:
标签:
python
pandas
mongodb
pymongo
【解决方案1】:
例如,如果您想要的数据数组中的特定对象具有索引 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)