Skip to main content

Package for transforming time series features

Project description

ts_features_sculptor

A package for feature engineering on time series data.

The library is designed for experiments with feature engineering in ML. It includes transformers, generators, and examples of feature construction for time series. Intended for educational and research purposes, not for production use. Users must verify results independently.

This is a sandbox for feature engineering experiments, not ready-made solutions.

Installation

pip install ts_features_sculptor

Example

A simple example of feature engineering creation:

import numpy as np
import pandas as pd
from sklearn.pipeline import Pipeline
from ts_features_sculptor import (
    ToDateTime,
    SortByTime,
    Tte,
    TimedRollingAggregator
)

data = {
    'time': [
        '2025-10-01 06:00:00',
        '2025-02-01 12:00:00',
        '2025-02-11 18:00:00',
        '2025-01-10 06:00:00'
    ],
    'value': [
        10., 11., 12., 11.
    ]
}
df = pd.DataFrame(data)

pippeline = Pipeline([
    ('to_datetime', ToDateTime(time_col="time")),
    ('sort_by_time', SortByTime(time_col="time")),
    ('tte', Tte(time_col="time")),
    ('time_rolling_aggregator', TimedRollingAggregator(
        time_col = "time",
        feature_col = "tte",
        window_days = 30,
        agg_funcs = ['mean', 'count'],
        fillna = np.nan
    ))
])

result_df = pippeline.transform(df)

print(result_df.to_string(index=False))
               time  value    tte  tte_time_rolling_mean_30  tte_time_rolling_count_30
2025-01-10 06:00:00   11.0  22.25                       NaN                        NaN
2025-02-01 12:00:00   11.0  10.25                     22.25                        1.0
2025-02-11 18:00:00   12.0 231.50                     10.25                        1.0
2025-10-01 06:00:00   10.0    NaN                       NaN                        NaN

Transformers

  • ToDateTime - Converts string time values to datetime format
  • SortByTime - Sorts data by timestamp.
  • TimeValidator - Validates the correctness of timestamps.
  • Tte - Computes time to event in days.
  • Lag - Creates lag features (time-shifted values).
  • RowRollingAggregator - Aggregates data using a fixed-row rolling window.
  • TimedRollingAggregator -Aggregates data using a time-based rolling window (in days).
  • DaysOfLife - Calculates the number of days since the start of observations (from the earliest date).
  • DateTimeDecomposer - Decomposes timestamps into components (year, month, day, day of week, hour, etc.).
  • Expanding - Computes expanding aggregates (cumulative statistics).
  • Expression - Applies custom expressions to data using numpy functions.
  • IsHolidays - Checks if a date is a holiday.
  • LongHoliday - Detects long holiday blocks.
  • SegmentLongHoliday - Segments data into holiday and non-holiday segments.
  • WindowActivity - Assigns the object's activity.
  • ActiveToInactive - Marks transitions from active to inactive states.
  • IntervalEventsMerge - Merges interval event data.
  • ActivityRangeClassifier - Extracts segments for the specified object activity.
  • GroupAggregate - Generates individual and group features.

Scallers

  • RobustLogScaler - Ribust log scalling using median / MAD.

Generators

  • TemporalGenerator - Base abstract class for time series generators.
  • FlexibleCyclicalGenerator - Generates weakly cyclical signals with high intra-cycle variability.
  • StructuredCyclicalGenerator - Generates signals with strict cyclicity and low stochasticity.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ts_features_sculptor-1.17.0.tar.gz (121.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ts_features_sculptor-1.17.0-py3-none-any.whl (164.3 kB view details)

Uploaded Python 3

File details

Details for the file ts_features_sculptor-1.17.0.tar.gz.

File metadata

  • Download URL: ts_features_sculptor-1.17.0.tar.gz
  • Upload date:
  • Size: 121.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.3

File hashes

Hashes for ts_features_sculptor-1.17.0.tar.gz
Algorithm Hash digest
SHA256 bcf566272dbeb01ac04a8bb08ffea370fbc5cac1d56e1e8a5e5f1daa46635f5b
MD5 7ba4bf87d7b719b6e6658e4b4874e11f
BLAKE2b-256 3cbea14cc9e1587cf44aec049f6c0ad1ea282bc99cf4053cac6102ee8c87a7f8

See more details on using hashes here.

File details

Details for the file ts_features_sculptor-1.17.0-py3-none-any.whl.

File metadata

File hashes

Hashes for ts_features_sculptor-1.17.0-py3-none-any.whl
Algorithm Hash digest
SHA256 02d070ea7fd30d473b5860ee6e54d7f525f3e8defb86736194e4f18a8901557c
MD5 5ad02fbe87683d7d9a010a1bf7c573ae
BLAKE2b-256 d716694bacaa83725861ed877f1c29930f393c3ba8a2db5da9af2c991d2a0f73

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page