django中使用pandas Django-pandas

本文介绍了如何在Django项目中利用django-pandas库将ORM查询结果转换为DataFrame,包括read_frame、to_dataframe和to_pivot_table的用法,并通过实例展示了数据过滤和数据透视表的创建。
摘要由CSDN通过智能技术生成

在django中使用pandas操作django的ORM查询出来的QuerySet对象,可以使用插件django-pandas。

截止教程书写时间,django-pandas已发布到0.6.1。

依赖:django>=1.4.5

          Django-model-utils >=1.4.0

          Pandas >=0.12.0

           当然,还需要numpy

用法:

1、IO模块:

该django-pandas.io模块提供了一些方便的方法,以便从django的查询集转换成DataFrames的创建。

read_frame

参数:

l   qs :一个django的QuerySet。

l   fieldnames :用于创建DataFrame的模型字段名称列表。可以使用双下划线指定另一个model中的相关字段,以通常的Django方式跨越关系。

l   index_col:使用指定用于DataFrame索引的字段名称。如果索引字段不在fieldnames参数中,则将会添加,注意这里的字段必须为该model里的字段。

l   coerce_float:Boolean(布尔值),默认为True。尝试将值转换为非字符串,将非数字对象(如decimal.Decimal)转化为浮点类型。

   Eg:

model.py

class Img_info(models.Model):
    '''
    图片信息表
    '''
    img_name = models.CharField(max_length=128, verbose_name="图片名")
    img = models.ImageField(upload_to="img", verbose_name="图片")

    class Meta:
        db_table = "img_info"


class Product_score(models.Model):
    '''
    图片打分表
    '''
    img_of = models.ForeignKey(Img_info, on_delete=models.CASCADE, verbose_name="图片")
    scoring_staff = models.CharField(max_length=32, verbose_name="打分员")
    score_num = models.FloatField(verbose_name="分数")

    class Meta:
        db_table = "product_score"

views.py

1、直接转化

from django_pandas.io import read_frame


def tset(request):
    qs = Product_score.objects.all()
    qs_dataframe = read_frame(qs=qs)
    print(qs_dataframe)
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值