Skip to main content

The time series toolkit for Python.

Project description

pytimetk

Time series easier, faster, more fun. Pytimetk.

Please ⭐ us on GitHub (it takes 2-seconds and means a lot).

Introducing pytimetk: Simplifying Time Series Analysis for Everyone

Time series analysis is fundamental in many fields, from business forecasting to scientific research. While the Python ecosystem offers tools like pandas, they sometimes can be verbose and not optimized for all operations, especially for complex time-based aggregations and visualizations.

Enter pytimetk. Crafted with a blend of ease-of-use and computational efficiency, pytimetk significantly simplifies the process of time series manipulation and visualization. By leveraging the polars backend, you can experience speed improvements ranging from 3X to a whopping 3500X. Let's dive into a comparative analysis.

Features/Properties pytimetk pandas (+matplotlib)
Speed 🚀 3X to 3500X Faster 🐢 Standard
Code Simplicity 🎉 Concise, readable syntax 📜 Often verbose
plot_timeseries() 🎨 2 lines, no customization 🎨 16 lines, customization needed
summarize_by_time() 🕐 2 lines, 13.4X faster 🕐 6 lines, 2 for-loops
pad_by_time() ⛳ 2 lines, fills gaps in timeseries ❌ No equivalent
anomalize() 📈 2 lines, detects and corrects anomalies ❌ No equivalent
augment_timeseries_signature() 📅 1 line, all calendar features 🕐 29 lines of dt extractors
augment_rolling() 🏎️ 10X to 3500X faster 🐢 Slow Rolling Operations

As evident from the table, pytimetk is not just about speed; it also simplifies your codebase. For example, summarize_by_time(), converts a 6-line, double for-loop routine in pandas into a concise 2-line operation. And with the polars engine, get results 13.4X faster than pandas!

Similarly, plot_timeseries() dramatically streamlines the plotting process, encapsulating what would typically require 16 lines of matplotlib code into a mere 2-line command in pytimetk, without sacrificing customization or quality. And with plotly and plotnine engines, you can create interactive plots and beautiful static visualizations with just a few lines of code.

For calendar features, pytimetk offers augment_timeseries_signature() which cuts down on over 30 lines of pandas dt extractions. For rolling features, pytimetk offers augment_rolling(), which is 10X to 3500X faster than pandas. It also offers pad_by_time() to fill gaps in your time series data, and anomalize() to detect and correct anomalies in your time series data.

Join the revolution in time series analysis. Reduce your code complexity, increase your productivity, and harness the speed that pytimetk brings to your workflows.

Explore more at our pytimetk homepage.

Installation

Install the latest stable version of pytimetk using pip:

pip install pytimetk

Alternatively you can install the development version:

pip install git+https://github.com/business-science/pytimetk.git

Quickstart:

This is a simple code to test the function summarize_by_time:

import pytimetk as tk
import pandas as pd

df = tk.datasets.load_dataset('bike_sales_sample')
df['order_date'] = pd.to_datetime(df['order_date'])

df \
    .groupby("category_2") \
    .summarize_by_time(
        date_column='order_date', 
        value_column= 'total_price',
        freq = "MS",
        agg_func = ['mean', 'sum'],
        engine = "polars"
    )

Documentation

Get started with the pytimetk documentation

Developers (Contributors): Installation

To install pytimetk using Poetry, follow these steps:

1. Prerequisites

Make sure you have Python 3.9 or later installed on your system.

2. Install Poetry

To install Poetry, you can use the official installer provided by Poetry. Do not use pip.

3. Clone the Repository

Clone the pytimetk repository from GitHub:

git clone https://github.com/business-science/pytimetk

4. Install Dependencies

Use Poetry to install the package and its dependencies:

poetry install

or you can create a virtualenv with poetry and install the dependencies

poetry shell
poetry install

🏆 More Coming Soon...

We are in the early stages of development. But it's obvious the potential for pytimetk now in Python. 🐍

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

pytimetk-1.0.1.tar.gz (4.3 MB view details)

Uploaded Source

Built Distribution

pytimetk-1.0.1-py3-none-any.whl (4.3 MB view details)

Uploaded Python 3

File details

Details for the file pytimetk-1.0.1.tar.gz.

File metadata

  • Download URL: pytimetk-1.0.1.tar.gz
  • Upload date:
  • Size: 4.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.0 CPython/3.9.18 Darwin/23.5.0

File hashes

Hashes for pytimetk-1.0.1.tar.gz
Algorithm Hash digest
SHA256 b77443c638a2a785305f180cf3ab8cc225c9aaab04936fb6d2dd48f5026ce409
MD5 6c08cafccc5672b11ffe2a39d0878a93
BLAKE2b-256 af2fe9b625f9237b3df53fb5b227ce5d6dc3b7830667b990b57cefdd73740965

See more details on using hashes here.

File details

Details for the file pytimetk-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: pytimetk-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 4.3 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.0 CPython/3.9.18 Darwin/23.5.0

File hashes

Hashes for pytimetk-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b33cd4a81cd6713e15db4211e8cb269d3f2b64f036e82aba9ce72e2c93f19eba
MD5 ea4f3ecc81a2abbc00a0d31b4dd9e7d5
BLAKE2b-256 a9d0fe48044b22ef418568bc8758e8d74467b40b9c2e2099eac1438e5b6b4426

See more details on using hashes here.

Supported by

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