A CLI-based dataset preprocessing tool for machine learning tasks. Features include data exploration, null value handling, one-hot encoding, and feature scaling, and download the modified dataset effortlessly.
WizCraft - CLI-Based Dataset Preprocessing Tool
WizCraft is a beginner-friendly Command Line Interface (CLI) tool for preparing tabular datasets for machine learning. It helps you inspect a CSV, diagnose data quality issues, handle missing values, encode categorical columns, scale numeric features, save a cleaned dataset, and export replayable preprocessing recipes.
Check out the Contribution Guide if you want to contribute to this project
Table of Contents
- Installation - Data Description - Handle Null Values - Encode Categorical Values - Feature Scaling - Save Preprocessed DatasetFeatures
- Load and preprocess your dataset effortlessly through a Command Line Interface (CLI).
- View dataset statistics, null value counts, and perform data imputation.
- Encode categorical variables using one-hot encoding.
- Normalize and standardize numerical features for better model performance.
- Download the preprocessed dataset with your desired modifications.
- Save preprocessing recipes and replay them on future CSV files.
- Audit datasets with
wizcraft doctor, detect modeling risks, and generate suggested cleaning recipes.
Getting Started
Installation
Install WizCraft from PyPI:
pip install wiz-craft
Start the interactive CLI with a CSV file:
wizcraft dataset.csv
You can also launch WizCraft and choose a CSV from the current directory:
wizcraft
WizCraft can still be used from Python:
from wizcraft.preprocess import Preprocess
wizobj = Preprocess(csvfile="dataset.csv") wiz_obj.start()
Follow the on-screen prompts to select the target variable and perform preprocessing tasks.
Audit a dataset and generate a suggested recipe:
wizcraft doctor train.csv --target Survived --write-recipe recipe.json
Export the same audit as JSON or HTML:
wizcraft doctor train.csv --target Survived --json report.json --html report.html
Replay a saved recipe on another CSV:
wizcraft apply new-data.csv --recipe cleaned.recipe.json --out new-data-clean.csv
Dataset Doctor
wizcraft doctor audits a CSV and surfaces common machine-learning data quality issues before you start modeling:
wizcraft doctor train.csv --target Survived
The doctor currently checks for:
- Column types, including numeric, categorical, datetime, text-like, ID-like, and mostly-empty columns
- Missing values
- Duplicate rows
- ID-like columns
- Constant and near-constant columns
- Categorical columns that need encoding
- Date/datetime columns that may need feature extraction
- Numeric outliers using the IQR rule
- Imbalanced target columns
- Likely modeling task: binary classification, multiclass classification, or regression
- Possible target leakage from suspicious names or highly target-correlated numeric columns
wizcraft doctor train.csv --target Survived --write-recipe recipe.json
wizcraft apply train.csv --recipe recipe.json --out train-clean.csv
You can also use Doctor output in automation:
wizcraft doctor train.csv --target Survived --format json
wizcraft doctor train.csv --target Survived --html report.html
Features Available
Data Description
- View statistics and properties of numeric columns.
- Explore unique values and statistics of categorical columns.
- Display a snapshot of the dataset.
Handle Null Values
- Show NULL value counts in each column.
- Remove specific columns or fill NULL values with mean, median, mode, or K-nearest neighbors.
Encode Categorical Values
- Identify and list categorical columns.
- Perform one-hot encoding on categorical columns.
Feature Scaling
- Normalize (Min-Max scaling) or standardize (Standard Scaler) numerical columns.
Save Preprocessed Dataset
- Download the modified dataset with applied preprocessing steps.
- Save a replayable
.recipe.jsonfile for the same preprocessing flow.
Replayable Recipes
WizCraft can now save the preprocessing steps you perform interactively. A recipe is a small JSON file that can be applied again later:
wizcraft apply raw-data.csv --recipe cleaned.recipe.json --out cleaned-data.csv
Recipes currently support:
- Removing columns
- Filling null values with mean, median, mode, or K-nearest neighbors
- One-hot encoding categorical columns
- Normalizing or standardizing numeric columns
Roadmap
WizCraft is being rebuilt around three ideas: a friendly first-time CLI, dataset health checks, and repeatable preprocessing recipes.
Current priorities:
- Non-interactive commands for automation and notebooks.
- Exportable scikit-learn preprocessing pipelines.
- Cleaner terminal tables, validation, and error messages.
- Example datasets, tutorials, and good first issues for new contributors.