我使用下面的命令从mongodb集合中获取数据并转换为dataframe。获取30000条记录所需的时间>15秒。如何在不花费更多时间的情况下将其转换为 Dataframe ?
db = conn.db collection = db.collection_name pd.DataFrame(list(collection.find()))
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文档。
json_normalize()
1条答案
按热度按时间jmp7cifd1#
这个问题可能是这个问题的重复。
我根据上面链接问题中提供的选项做了一个简短的性能测试(使用mongodb数据库中的示例数据):
免责声明
这仅代表执行时间之间的比率,不能应用于您的确切问题,因为我无法访问您的数据。
json_normalize()
返回其他 Dataframe (未列出的)列。如果您不需要mongodb文档中的所有字段,我建议只搜索您真正需要的字段。参见mongodb文档。