РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
162 of 818 menu

Класс StdDev

Класс StdDev применяется в агрегирующих запросах Django для вычисления стандартного отклонения значений указанного поля. Он используется вместе с методом aggregate или annotate. Класс принимает название поля модели в качестве аргумента и возвращает вычисленное значение стандартного отклонения для всего набора записей или для каждой группы при использовании с annotate.

Синтаксис

from django.db.models import StdDev result = Model.objects.aggregate(StdDev('field_name'))

Параметры

Класс StdDev принимает следующие параметры:

  • field - имя числового поля модели, по которому вычисляется стандартное отклонение (обязательный параметр)
  • sample - булевый параметр, определяющий, вычислять ли выборочное стандартное отклонение (True) или стандартное отклонение генеральной совокупности (False). По умолчанию False.
  • distinct - булевый параметр, указывающий, учитывать ли только уникальные значения поля. По умолчанию False.

Пример . Вычисление стандартного отклонения

Пусть у нас есть модель Product с полем price. Вычислим стандартное отклонение цен всех товаров:

from django.db.models import StdDev from myapp.models import Product result = Product.objects.aggregate( price_stddev=StdDev('price') ) print(result)

Результат выполнения кода:

{"price_stddev": 150.75}

Пример . С параметром sample

Вычислим выборочное стандартное отклонение цен товаров:

from django.db.models import StdDev from myapp.models import Product result = Product.objects.aggregate( price_stddev_sample=StdDev('price', sample=True) ) print(result)

Результат выполнения кода:

{"price_stddev_sample": 160.25}

Пример . С параметром distinct

Вычислим стандартное отклонение уникальных цен товаров:

from django.db.models import StdDev from myapp.models import Product result = Product.objects.aggregate( price_stddev_unique=StdDev('price', distinct=True) ) print(result)

Результат выполнения кода:

{"price_stddev_unique": 120.50}

Пример . С группировкой

Вычислим стандартное отклонение цен товаров по категориям с помощью метода annotate:

from django.db.models import StdDev from myapp.models import Product products_by_category = Product.objects.values('category').annotate( price_stddev=StdDev('price') ) for item in products_by_category: print(item)

Результат выполнения кода:

{"category": "Electronics", "price_stddev": 200.00} {"category": "Books", "price_stddev": 15.50}

Пример . С фильтрацией

Вычислим стандартное отклонение цен только для товаров с ценой больше 1000:

from django.db.models import StdDev from myapp.models import Product result = Product.objects.filter(price__gt=1000).aggregate( price_stddev=StdDev('price') ) print(result)

Результат выполнения кода:

{"price_stddev": 250.75}

Смотрите также

  • класс Variance,
    который вычисляет дисперсию значений поля
  • класс Avg,
    который вычисляет среднее арифметическое значений поля
  • класс Sum,
    который вычисляет сумму значений поля
  • метод aggregate,
    который выполняет агрегирующие запросы
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить