Transformer
DegreeDayFeatures
Compute degree-day features (HDD/CDD) from daily temperatures.
Quickstart
python
from sktime.transformations.degree_day import DegreeDayFeatures
estimator = DegreeDayFeatures(base_temp: float=65.0, tmax_col: str | None=None, tmin_col: str | None=None, tmean_col: str | None=None, return_tmean: bool=True, strict: bool=False, keep_original_columns: bool=False)Parameters(6)
- base_tempfloat, default=65.0
- Base (balance-point) temperature in the same units as the input.
- tmax_col, tmin_colstr or None, default=None
- Column names for daily max/min temperature. If both provided, uses them.
- tmean_colstr or None, default=None
- Column name for mean temperature. If provided and present, uses it.
- return_tmeanbool, default=True
- If True, include tmean in the output.
- strictbool, default=False
- If True, raises when tmin > tmax; if False, auto-swaps those rows.
- keep_original_columnsbool, default=False
- If True, appends features to X. If False, returns only features.
Examples
Basic usage with explicit max/min temperature columns: import pandas as pd from sktime.transformations.degree_day import DegreeDayFeatures X = pd.DataFrame(… {“high”: [60, 70, 90], “low”: [40, 60, 70]}, … index=pd.to_datetime([“2025-01-01”, “2025-01-02”, “2025-01-03”]), …) tx = DegreeDayFeatures(base_temp=65.0, tmax_col=”high”, tmin_col=”low”) tx.fit_transform(X)[[“hdd”, “cdd”]].round(1) hdd cdd 2025-01-01 15.0 0.0 2025-01-02 0.0 0.0 2025-01-03 0.0 15.0 Auto mode: if X has a single column, it is treated as mean temperature (tmean): X_mean = pd.DataFrame(… {“temp”: [50.0, 65.0, 80.0]}, … index=pd.to_datetime([“2025-01-01”, “2025-01-02”, “2025-01-03”]), …) DegreeDayFeatures(base_temp=65.0, return_tmean=False).fit_transform(X_mean) hdd cdd 2025-01-01 15.0 0.0 2025-01-02 0.0 0.0 2025-01-03 0.0 15.0 Append features to the original data using keep_original_columns=True: DegreeDayFeatures(… base_temp=65.0, tmax_col=”high”, tmin_col=”low”, keep_original_columns=True …).fit_transform(X).columns.tolist() [‘high’, ‘low’, ‘tmean’, ‘hdd’, ‘cdd’]