Coverage for jstark/features/average_discount_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"""AverageDiscountPerBasket feature"""
2import pyspark.sql.functions as f
3from pyspark.sql import Column
5from .feature import DerivedFeature
6from .discount import Discount
7from .basket_count import BasketCount
10class AvgDiscountPerBasket(DerivedFeature):
11 def column_expression(self) -> Column:
12 return (
13 Discount(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 Discount per Basket"
21 @property
22 def commentary(self) -> str:
23 return "Total Discount divided by the number of baskets."
25 def default_value(self) -> Column:
26 return f.lit(None)