通常我们在Django framework里去取DB数据做处理时,会用values()这个function,然后直接转换成dataframe。假设需要取整个table的数据,简单粗暴的写法如下:
querySet = models.xxx.objects.all().using("db_name").values()
df = pd.DataFrame(list(querySet))
这是一种最方便的写法,但却是最耗memory的。那么我们如何改进这一操作?
首先我们可以做的是去掉不需要的column,只选择有用的column。如果目标table有很多column,而你只需要其中一两个的话,这一缩减可以节省很多的资源消耗。
querySet = models.xxx.objects.all(

在Django框架中,通过Model查询获取数据库数据并转换为DataFrame时,默认方法可能导致大量内存消耗。通过选择必要的column并使用values_list()代替values(),可以显著降低内存使用。values_list()将数据以无column名的元组形式返回,适用于大规模数据集,能有效减少50%的内存峰值。在转换DataFrame时需手动指定column信息。
最低0.47元/天 解锁文章
1170

被折叠的 条评论
为什么被折叠?



