轻松浏览您的django模型

django-pivot2的Python项目详细描述


Django Pivot是Numpy、Pandas和Django Pandas的包装 您可以在QuerySet上轻松地操作透视表。

安装

pip install django-pivot2

修改模型以使用django_pandas.managers.DataFrameManagerdjango_pandas.managers.DataFrameQuerySet

class LongTimeSeries(models.Model):
  date_ix = models.DateTimeField()
  series_name = models.CharField(max_length=100)
  value = models.FloatField()

  objects = DataFrameManager()

用法

这个应用程序basicaly提供api来请求透视表。一切都不是自动的 开发人员必须始终声明:

  • 可能的值
  • 可能的行和列

对于最终用户,api将询问

  • 聚合函数
  • 应用函数
  • 格式

基于类的视图

可以合成你自己的枢轴。它具有以下行为: -显示窗体以收集数据透视表的参数 -如果给定有效输入,则将透视表显示为HTML -以文件的形式下载数据,格式如下

示例:

from django_filters.views import FilterView
from django_pivot.views import PivotView
from myapp import models

class LongTimeSeriesPivotView(PivotView, FilterView):
    template_name = "pivot.html
    model = models.LongTimeSeries

    values_choices = ['date_ix', 'value']
    rows_choices = cols_choices = ['serie_name', 'date_ix', 'value']

PivotView与django的ListView兼容,django过滤器FilterView 或任何有相同行为的观点。

石墨烯django

即将推出

石墨烯django extras

schema.py示例:

from graphene_django import DjangoObjectType
from django_pivot.contrib.graphene_django_extras import PivotField
from myapp import models

class LongTimeSeriesType(DjangoObjectType):
    class Meta:
        model = models.LongTimeSeries

class Query:
    pivot_long_time_series = PivotField(
        LongTimeSeriesType,
        filterset_class=filtersets.LongTimeSeriesFilter,
        values_choices=['date_ix', 'value'],
        rows_choices=['serie_name', 'date_ix', 'value'],
        cols_choices=['serie_name', 'date_ix', 'value'],
    )

请求示例:

query {
  pivot_long_time_series (values: ["value"], rows: ["serie_name"], cols: ["value"], aggfuncs: ["mean"])
}

因为graphql应该只返回json,而pandas的json格式是..嗯…奇怪, 我们将pivot_表转换为csv,然后转换为列表列表,因此完全兼容。

使用django rest框架

即将推出

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
空字符串检查在java中未按预期工作   JavaSpringWebClient:自动计算主体的HMAC签名并将其作为头传递   foreach是否有一个Java等效的foreach循环和一个引用变量?   java如何在Eclipse中导入jar   使用特定第三方或java时lombok触发错误。*方法或构造函数   安卓 java将对象数组转换为int数组   java使一定百分比的JUnit测试通过   java Android:将Seekbar的一个值与另一个值进行比较   java将int数组(图像数据)写入文件的最佳方式是什么   java取代了系统。yml的构造函数内的getProperty   sqlite Java将公钥和私钥转换为字符串,然后再转换回字符串   安卓获取白色像素并将其保存到java opencv中的数组中   java为什么是ServerSocket。setSocketFactory静态?   Java数组似乎在不直接修改的情况下更改值