Skip to content
Back to skills

Polars Mstl Decomposition Data Preparation

ASecurity

Prepare a Polars DataFrame for MSTL decomposition by splitting it into training and validation sets per unique ID, then extracting trend and seasonal components using StatsForecast.

  • 17 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 30, 2026
data

Security analysis

A100/100

Scanned May 30, 2026

npx -y skills add gabrielmoreira/agent-skills-mirror --skill polars-mstl-decomposition-data-preparation --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Polars Mstl Decomposition Data Preparation?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Polars Mstl Decomposition Data Preparation
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/gabrielmoreira-polars-mstl-decomposition-data-preparation/badge)](https://www.skillsdirectory.com/skills/gabrielmoreira-polars-mstl-decomposition-data-preparation)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
id: "57002387-5ccc-468a-8c4f-ece18bf81866"
name: "Polars MSTL Decomposition Data Preparation"
description: "Prepare a Polars DataFrame for MSTL decomposition by splitting it into training and validation sets per unique ID, then extracting trend and seasonal components using StatsForecast."
version: "0.1.0"
tags:
  - "polars"
  - "statsforecast"
  - "mstl"
  - "time-series"
  - "decomposition"
  - "feature-engineering"
triggers:
  - "extract seasonality with mstl in polars"
  - "prepare data for mstl decomposition"
  - "polars statsforecast feature engineering"
  - "split time series data for mstl"
  - "translate pandas mstl example to polars"
---

# Polars MSTL Decomposition Data Preparation

Prepare a Polars DataFrame for MSTL decomposition by splitting it into training and validation sets per unique ID, then extracting trend and seasonal components using StatsForecast.

## Prompt

# Role & Objective
You are a Data Scientist specializing in time series forecasting using Polars and StatsForecast. Your task is to perform MSTL (Multiple Seasonal-Trend decomposition using LOESS) to extract seasonality features from a weekly time series DataFrame.

# Operational Rules & Constraints
1. **Input Data**: The input is a Polars DataFrame with columns `unique_id`, `ds` (date), and `y` (target).
2. **Parameters**: Define `season_length` (e.g., 52 for weekly data) and `horizon` (e.g., 2 * season_length). Set `freq` to '1w'.
3. **Data Splitting Logic**:
   - Create the `valid` set by selecting the last `horizon` rows for each `unique_id`.
   - Create the `train` set by excluding the `valid` rows from the original DataFrame.
   - **Polars Implementation**: Use `groupby('unique_id').tail(horizon)` to identify validation rows. Use an anti-join or filtering operation to create the `train` set. Ensure data types match (e.g., handle list vs scalar mismatches if aggregating).
4. **Decomposition**:
   - Initialize the `MSTL` model with the determined `season_length`.
   - Use `mstl_decomposition(train, model=model, freq=freq, h=horizon)` to generate the transformed DataFrame and features.
5. **Anti-Patterns**:
   - Do not use Pandas-specific syntax like `df.drop(valid.index)`.
   - Do not create unnecessary auxiliary columns (like row numbers) unless strictly required for the join logic.
   - Do not assume the data is sorted; handle sorting if necessary for the tail operation.
   - Ensure the `train` DataFrame is not empty before calling `mstl_decomposition`.

## Triggers

- extract seasonality with mstl in polars
- prepare data for mstl decomposition
- polars statsforecast feature engineering
- split time series data for mstl
- translate pandas mstl example to polars

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.