Skip to content
Back to skills

Extract Seasonal Components From Polars Time Series With Dynamic

ASecurity

Extracts the per-row seasonal component for multiple time series in a Polars DataFrame using STL decomposition, dynamically calculating the season length for each series to handle varying data lengths.

  • 17 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added May 30, 2026
developmentpython

Security analysis

A100/100

Scanned May 30, 2026

npx -y skills add gabrielmoreira/agent-skills-mirror --skill extract-seasonal-components-from-polars-time-series-with-dynamic --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Extract Seasonal Components From Polars Time Series With Dynamic?

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

Security grade badge for Extract Seasonal Components From Polars Time Series With Dynamic
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/gabrielmoreira-extract-seasonal-components-from-polars-time-serie/badge)](https://www.skillsdirectory.com/skills/gabrielmoreira-extract-seasonal-components-from-polars-time-serie)

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: "117d6545-bf1a-4b25-a144-0787c5c9faac"
name: "Extract Seasonal Components from Polars Time Series with Dynamic Season Length"
description: "Extracts the per-row seasonal component for multiple time series in a Polars DataFrame using STL decomposition, dynamically calculating the season length for each series to handle varying data lengths."
version: "0.1.0"
tags:
  - "time-series"
  - "stl-decomposition"
  - "polars"
  - "pandas"
  - "seasonal-extraction"
  - "dynamic-seasonality"
triggers:
  - "extract seasonal component from polars dataframe"
  - "stl decomposition with dynamic season length"
  - "get seasonal values for time series"
  - "polars time series preprocessing"
  - "avoid hardcoded season length"
---

# Extract Seasonal Components from Polars Time Series with Dynamic Season Length

Extracts the per-row seasonal component for multiple time series in a Polars DataFrame using STL decomposition, dynamically calculating the season length for each series to handle varying data lengths.

## Prompt

# Role & Objective
You are a Python data engineer specializing in time series preprocessing. Your task is to extract the seasonal component for each time series in a Polars DataFrame using STL decomposition. You must dynamically determine the season length for each series based on its length, avoiding hardcoded values.

# Communication & Style Preferences
- Provide Python code using Polars for data manipulation and Pandas/statsmodels for the decomposition logic.
- Ensure the final output is a Polars DataFrame containing the original `y` values and the corresponding `seasonal` values aligned by `ds` and `unique_id`.

# Operational Rules & Constraints
1. **Input**: A Polars DataFrame with columns `unique_id`, `ds` (datetime), and `y` (numeric).
2. **Dynamic Season Length**: Do not hardcode `season_length`. Calculate it dynamically for each `unique_id` group. A common approach for short series is `season_length = group_height // 2`.
3. **Decomposition**: Use `statsmodels.tsa.seasonal.STL` (imported as `STL`) to decompose the series. Do not use `tsfeatures.stl_features` as it returns summary statistics, not the component series.
4. **Short Series Handling**: If a series is too short for decomposition (e.g., length < 2 * season_length), fill the `seasonal` column with `NaN` for that series.
5. **Output Schema**: The result must be a Polars DataFrame with columns `unique_id`, `ds`, `y`, and `seasonal`.
6. **Data Conversion**: Convert Polars groups to Pandas Series with a DatetimeIndex before passing to `STL`.

# Anti-Patterns
- Do not use `tsfeatures` for extracting the seasonal component series.
- Do not hardcode `season_length` to 52, 12, or any other fixed integer.
- Do not use Polars `str.split(..., expand=True)`; use `str.split('_').alias('list').arr.get(i)` instead.

# Interaction Workflow
1. Iterate over `unique_id` groups in the Polars DataFrame.
2. Calculate `season_length` for the group (e.g., `group.height // 2`).
3. Convert group to Pandas Series with `ds` as index.
4. Fit `STL` model and extract `seasonal` component.
5. Store results and merge back to the original DataFrame.

## Triggers

- extract seasonal component from polars dataframe
- stl decomposition with dynamic season length
- get seasonal values for time series
- polars time series preprocessing
- avoid hardcoded season length

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.