Skip to main content

A package for preprocessing pandas DataFrames

Project description

Prepo

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

Features

  • Automatic Data Type Detection: Automatically identifies column types (numeric, categorical, temporal, etc.)
  • Data Cleaning: Handles missing values, standardizes null representations
  • Outlier Removal: Identifies and removes outliers from numeric columns
  • Feature Scaling: Supports multiple scaling methods (standard, robust, minmax)
  • Time Series Detection: Identifies if a DataFrame represents time series data

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
  • integer: Numeric columns with integer values
  • categorical: Columns with a low ratio of unique values to total values
  • 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

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.1.4.tar.gz (7.6 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.1.4-py3-none-any.whl (6.8 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for prepo-0.1.4.tar.gz
Algorithm Hash digest
SHA256 31494716866fd88392bd2b938a8e6e30de3393baaa4ffff5b1816170cb51e1b6
MD5 d73b87f05f1a6d023aaccd4660f607cd
BLAKE2b-256 fc2e0d814e7b3317ab459393ef9ddea1f2a1f4067a3200db8334b882f3972451

See more details on using hashes here.

Provenance

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

Publisher: python-publish.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.1.4-py3-none-any.whl.

File metadata

  • Download URL: prepo-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 6.8 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.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 0eda1057bd45a1d23fea00a286167c818371fa1c0e9f27494dac4cb7c91875a0
MD5 9c1b80a73aa9f47abe1b18a86abc42b2
BLAKE2b-256 fe61e102b9ba7e08796a89b7f70541578b79231f5af4116fe00e7557fc9a4e2c

See more details on using hashes here.

Provenance

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

Publisher: python-publish.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