python—减少将db记录转换为 Dataframe 所需时间的方法

dhxwm5r4  于 2021-08-25  发布在  Java
关注(0)|答案(1)|浏览(204)

我使用下面的命令从mongodb集合中获取数据并转换为dataframe。获取30000条记录所需的时间>15秒。如何在不花费更多时间的情况下将其转换为 Dataframe ?

db = conn.db
collection = db.collection_name
pd.DataFrame(list(collection.find()))
jmp7cifd

jmp7cifd1#

这个问题可能是这个问题的重复。
我根据上面链接问题中提供的选项做了一个简短的性能测试(使用mongodb数据库中的示例数据):

In [1]: %timeit df = pd.DataFrame(list(collection.find()))
1.11 s ± 2.44 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
In [2]: %timeit df = pd.DataFrame.from_records(collection.find())
1.11 s ± 1.69 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
In [3]: %timeit df = pd.json_normalize(collection.find())
4.89 s ± 13.7 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

免责声明
这仅代表执行时间之间的比率,不能应用于您的确切问题,因为我无法访问您的数据。 json_normalize() 返回其他 Dataframe (未列出的)列。
如果您不需要mongodb文档中的所有字段,我建议只搜索您真正需要的字段。参见mongodb文档。

相关问题