【Django】Model query转换成Dataframe时,如何减少50%的内存消耗

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

通常我们在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(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值