Pinak-Datta
wiz-craft
Python

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.

Last updated Jun 29, 2026
16
Stars
6
Forks
16
Issues
+16
Stars/day
Attention Score
54
Language breakdown
No language data available.
Files click to expand
README

wizcraft-banner

WizCraft - CLI tool that simplifies the process of data pre-processing | Product Hunt

License CI

Downloads

PyPI - Version

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.

Try the tool online here

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 Dataset

Features

  • 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

wizcraft-cli_welcome

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
You can write a suggested recipe and apply it later:
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

data<em>description</em>preview

  • View statistics and properties of numeric columns.
  • Explore unique values and statistics of categorical columns.
  • Display a snapshot of the dataset.

Handle Null Values

null<em>data</em>preview

  • 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

one<em>hot</em>encode_preview

  • Identify and list categorical columns.
  • Perform one-hot encoding on categorical columns.

Feature Scaling

scaling_preview

  • Normalize (Min-Max scaling) or standardize (Standard Scaler) numerical columns.

Save Preprocessed Dataset

save_preview

  • Download the modified dataset with applied preprocessing steps.
  • Save a replayable .recipe.json file 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.
See ROADMAP.md for the full direction.

Contributing to the Project

Check out the Contribution Guide if you want to contribute to this project
🔗 More in this category

© 2026 GitRepoTrend · Pinak-Datta/wiz-craft · Updated daily from GitHub