Skip to main content

A Python package with automated data type detection, KNN imputation, outlier removal, and multiple scaling methods using type-safe enum architecture

Project description

Prepo

A Python package for preprocessing pandas DataFrames, with a focus on automatic data type detection, cleaning, and scaling.

Installation

pip install prepo

Usage

import pandas as pd
from prepo import FeaturePreProcessor

# Create a processor instance
processor = FeaturePreProcessor()

# Load your data
df = pd.read_csv('data/raw/your_data.csv')

# Process the data
processed_df = processor.process(
    df, 
    drop_na=True,           # Drop rows with missing values
    scaler_type='standard', # Scale numeric features using standard scaling
    remove_outlier=True     # Remove outliers
)

# Save the processed data
processed_df.to_csv('data/processed/processed_data.csv', index=False)

Data Type Detection

The package automatically detects the following data types:

  • temporal: Date and time columns
  • binary: Columns with only two unique values
  • percentage: Columns with values between 0 and 1, or columns with names containing "perc", "rating", etc.
  • price: Columns with names containing "price", "cost", "revenue", etc.
  • id: Columns with names ending or starting with "id"
  • numeric: General numeric columns
  • string: Short text columns
  • text: Long text columns

Project Structure

prepo/
├── data/               # Data directory
│   ├── raw/            # Raw data files
│   ├── processed/      # Processed data files
│   └── test/           # Test data files
├── src/                # Source code
│   └── prepo/          # Main package
│       ├── __init__.py        # Package initialization
│       └── preprocessor.py    # Core preprocessing functionality
├── tests/              # Test directory
│   ├── __init__.py     # Test package initialization
│   └── test_preprocessor.py  # Tests for preprocessor
├── examples/           # Example scripts
│   └── basic_usage.py  # Basic usage example
├── README.md           # Project documentation
├── LICENSE             # License information
└── setup.py            # Package installation script

Demo

preposc.streamlit.app

License

This project is licensed under the MIT License - see the LICENSE file for details.

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

prepo-0.2.0.tar.gz (23.9 kB view details)

Uploaded Source

Built Distribution

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

prepo-0.2.0-py3-none-any.whl (16.0 kB view details)

Uploaded Python 3

File details

Details for the file prepo-0.2.0.tar.gz.

File metadata

  • Download URL: prepo-0.2.0.tar.gz
  • Upload date:
  • Size: 23.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for prepo-0.2.0.tar.gz
Algorithm Hash digest
SHA256 f3eb1226512eec06b9b74d8bc9be741659eaa319b2b06007011bbf3f829a9d0e
MD5 536812f370bb6c623447ec74b51071c1
BLAKE2b-256 dfdd5513eeb4fc457be103e7f62a60348f8a2dbce643c88f0c27512e706ec7e2

See more details on using hashes here.

Provenance

The following attestation bundles were made for prepo-0.2.0.tar.gz:

Publisher: ci-cd.yml on erikhox/prepo

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file prepo-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: prepo-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 16.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for prepo-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 06e9d07455b4d98385e3d4e1bb63036c369743f3ed33c8fedce6e787592103d5
MD5 fa4cafc5ad7d89295283b6fbe36f5306
BLAKE2b-256 d0f15755bae595308cc46120e819a9a108aab7e86da207c1dc64c79299043cce

See more details on using hashes here.

Provenance

The following attestation bundles were made for prepo-0.2.0-py3-none-any.whl:

Publisher: ci-cd.yml on erikhox/prepo

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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