Coverage for jstark / grocery / average_gross_spend_per_basket.py: 100%
16 statements
« prev ^ index » next coverage.py v7.13.4, created at 2026-03-23 22:34 +0000
« prev ^ index » next coverage.py v7.13.4, created at 2026-03-23 22:34 +0000
1"""AvgGrossSpendPerBasket feature"""
3import pyspark.sql.functions as f
4from pyspark.sql import Column
6from jstark.features.feature import DerivedFeature
7from jstark.features.gross_spend import GrossSpend
8from .basket_count import BasketCount
11class AvgGrossSpendPerBasket(DerivedFeature):
12 def column_expression(self) -> Column:
13 return f.try_divide(
14 GrossSpend(
15 self.as_at,
16 self.feature_period,
17 first_day_of_week=self._first_day_of_week,
18 ).column,
19 BasketCount(
20 self.as_at,
21 self.feature_period,
22 first_day_of_week=self._first_day_of_week,
23 ).column,
24 )
26 @property
27 def description_subject(self) -> str:
28 return "Average GrossSpend per Basket"
30 @property
31 def commentary(self) -> str:
32 return "Total GrossSpend divided by the number of baskets"
34 def default_value(self) -> Column:
35 return f.lit(None)