将Pandas DataFrame作为PickledObjectField存储在Django模型中是不好的做法吗?

时间:2018-12-15 10:00:14

标签: python django pandas

我将Django模型中的Pandas DataFrame作为PickledObjectField存储。我需要根据某些逻辑访问和修改此DataFrame。熊猫使这项工作变得容易得多,在这里,我有一个使用熊猫选择和过滤器的引擎类。

我是否应该有一个单独的模型,在其中将每一行存储在DataFrame中,然后使用django-pandas进行读取,执行操作并更新模型?关键是要通过添加/删除一些行来修改DataFrame,因此,如果要将其存储在模型中,则删除所有记录并重新填充模型会更容易。

DataFrame少于100行,因此我不必担心可伸缩性。

1 个答案:

答案 0 :(得分:0)

如果将数据帧另存为拾取对象,则升级大熊猫后可能会出现不兼容问题。

如果您不需要操纵数据框的每一行,那么我不会添加新的Django模型来保存记录,因为每次需要使用它们时,我都必须< / p>

  • 将它们全部读入DataFrame,
  • 做点工作,
  • 删除与此DataFrame相关的所有行,
  • 最后再次批量保存它们。

我的建议是将DataFrame作为CSV文件转储,并将其位置保存在您现在具有PickledObjectField的同一模型上。

df.to_csv('path/to/dataframe.csv')

使用CSV文件,您可以

df = pandas.read_csv('path/to/dataframe.csv')