我正在建立一个烧瓶应用程序,允许用户上传CSV文件(包含不同的列),预览上传的文件,生成摘要统计信息,执行复杂的转换/聚合(有时通过Celery作业),然后导出修改后的数据。上传的文件被读入pandas DataFrame,这使我能够优雅地处理大部分复杂的数据工作。
我希望这些DataFrame以及相关的元数据(上传时间,上传文件的用户ID等)能够持续存在,并且可供多个用户传递到各种视图。但是,我不确定如何最好地将数据合并到我的SQLAlchemy模型中(我在后端使用PostgreSQL)。
我考虑过三种方法:
PickleType
并将其直接存储在数据库中。这似乎是最直接的解决方案,但意味着我将大型二进制对象粘贴到数据库中。DataFrame.to_json()
)并将其存储为json
类型(映射到PostgreSQL' s json
类型)。这增加了每次访问DataFrame时解析JSON的开销,但它也允许通过PostgreSQL JSON operators直接操作数据。鉴于每种方法的优点和缺点(包括我不知道的那些),是否有将pandas DataFrames合并到SQLAlchemy模型的首选方法?
答案 0 :(得分:5)
转向JSON和PostgreSQL解决方案。我正在使用Pickle on file系统开始的Pandas项目,并将数据加载到类对象中,以便使用pandas进行数据处理。但是,随着数据变得越来越大,我们使用了SQLAlchemy / SQLite3。现在,我们发现使用SQLAlchemy / PostgreSQL更好。我认为我们的下一步将是JSON。 玩得开心!熊猫岩石!