gpt4 book ai didi

python - 在 SQLAlchemy 模型中存储 pandas DataFrame

转载 作者:太空狗 更新时间:2023-10-29 18:08:14 24 4
gpt4 key购买 nike

我正在构建一个 Flask 应用程序,它允许用户上传 CSV 文件(具有不同的列)、预览上传的文件、生成汇总统计信息、执行复杂的转换/聚合(有时通过 Celery 作业),然后导出修改后的数据。上传的文件正在被读入 pandas DataFrame,这使我能够优雅地处理大部分复杂的数据工作。

我希望这些 DataFrame 连同关联的元数据(上传时间、上传文件的用户 ID 等)能够持久存在,并可供多个用户传递到各种 View 。但是,我不确定如何最好地将数据合并到我的 SQLAlchemy 模型中(我在后端使用 PostgreSQL)。

我考虑过的三种方法:

  • 将 DataFrame 塞入 PickleType 并将其直接存储在数据库中。这似乎是最直接的解决方案,但意味着我会将大型二进制对象粘贴到数据库中。
  • 挑选 DataFrame,将其写入文件系统,并将路径作为字符串存储在模型中。这使得数据库很小,但在备份数据库和允许用户执行删除以前上传的文件等操作时增加了一些复杂性。
  • 将 DataFrame 转换为 JSON (DataFrame.to_json()) 并将其存储为 json 类型(映射到 PostgreSQL 的 json 类型) .这增加了每次访问 DataFrame 时解析 JSON 的开销,但它也允许通过 PostgreSQL JSON operators 直接操作数据。 .

考虑到各自的优点和缺点(包括我不知道的那些),是否有将 pandas DataFrames 合并到 SQLAlchemy 模型中的首选方法?

最佳答案

转向 JSON 和 PostgreSQL 解决方案。我在一个 Pandas 项目上,该项目从文件系统上的 Pickle 开始,并将数据加载到一个类对象中,以便使用 Pandas 进行数据处理。然而,随着数据变大,我们开始使用 SQLAlchemy/SQLite3。现在,我们发现使用 SQLAlchemy/PostgreSQL 会更好。我认为我们的下一步将是 JSON。玩得开心! Pandas 摇滚!

关于python - 在 SQLAlchemy 模型中存储 pandas DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23484132/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com