TimeWeaver 0.1.7.31
Python Package for automated multivariate Time Series imputation
Requires Python: >=3.8

[![Project Status: Active The project has reached a stable, usable state and is being actively developed.](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active)
![GitHub release (latest by date including pre-releases)](https://img.shields.io/github/v/release/rscholz98/TimeWeaver)
![GitHub last commit](https://img.shields.io/github/last-commit/rscholz98/TimeWeaver)
![GitHub pull requests](https://img.shields.io/github/issues-pr/rscholz98/TimeWeaver)
![GitHub](https://img.shields.io/github/license/rscholz98/TimeWeaver)
![contributors](https://img.shields.io/github/contributors/rscholz98/TimeWeaver)
![codesize](https://img.shields.io/github/languages/code-size/rscholz98/TimeWeaver)

# TimeWeaver: Automated time series imputation <img src="https://raw.githubusercontent.com/rscholz98/TimeWeaver/main/assets/logo.png" align="right" alt="TimeWeaver Logo" />

TimeWeaver is a Python library designed for multivariate time series data analysis, specifically addressing the challenges of machine process environmental data. It focuses on overcoming incomplete datasets due to sensor errors by employing various tailored imputation techniques. This ensures the integrity and relevance of data, catering to the unique characteristics of different features, such as discrepancies between power consumption and temperature curves.

TimeWeaver provides insightful graphics and analyses, enabling effective tool selection for specific data challenges, making it a valuable asset for data scientists and analysts. Additionally, it is evolving to offer a customizable Preprocessor model, facilitating the integration of optimal imputation methods into existing data processing pipelines for automated and enhanced data preparation.

# Disclaimer

The currently implementation methods are based on the provided functions by numpy / scipy. The package logo was generated by ChatGPT 4.0 on 09.03.2024. The project is still in the early stages of development and thereby `not yet suitable for production environments`, it's meant solely for testing and experimentation.

# Quickstart

The following example uses the Beijing PM25 Data Set to show the functionalities of the library.

```python
from timeweaver.timeweaver import TimeWeaver
from timeweaver.datasets import DataSets

dataframe = DataSets.PRSA()
interpolator = TimeWeaver(dataframe[0:1000], tracking_column="No")
interpolator.evaluate()
print(interpolator.get_best(optimized_selection=True))
```

[('year', 'akima'),
('month', 'akima'),
('day', 'akima'),
('hour', 'akima'),
('pm2.5', 'akima'),
('DEWP', 'from_derivatives'),
('TEMP', 'akima'),
('PRES', 'akima'),
('Iws', 'akima'),
('Is', 'from_derivatives'),
('Ir', 'akima')]

```python
PreProcessor = interpolator.build_PreProcessor()
PreProcessor.transform(dataframe)
```

# Structure

<img src="https://raw.githubusercontent.com/rscholz98/TimeWeaver/main/assets/structure.png" alt="TimeWeaver Structure" width="100%" />

# To Do List

- [x] Implement the PreProcessor object as a return
- [ ] If the initial design doesnt find a interpolation method it breaks