Coverage for jstark/features/average_quantity_per_basket.py: 100%
16 statements
« prev ^ index » next coverage.py v7.4.3, created at 2024-02-25 20:09 +0000
« prev ^ index » next coverage.py v7.4.3, created at 2024-02-25 20:09 +0000
1"""AverageQuantityPerBasket feature"""
2import pyspark.sql.functions as f
3from pyspark.sql import Column
5from .feature import DerivedFeature
6from .quantity import Quantity
7from .basket_count import BasketCount
10class AvgQuantityPerBasket(DerivedFeature):
11 def column_expression(self) -> Column:
12 return (
13 Quantity(self.as_at, self.feature_period).column
14 / BasketCount(self.as_at, self.feature_period).column
15 )
17 @property
18 def description_subject(self) -> str:
19 return "Average Quantity per Basket"
21 @property
22 def commentary(self) -> str:
23 return (
24 "Total Quantity divided by the number of baskets. "
25 + "Very useful to know how large, on average, each basket is."
26 )
28 def default_value(self) -> Column:
29 return f.lit(None)