Getting Started
Introduction
Featuresmith is an open-source Python library for dataset profiling, rule-based validation, and intelligent feature analysis. This guide will get you up and running in minutes.
What is Featuresmith?
Modern data pipelines move fast. Schema drift, unexpected nulls, and silent type coercions cause downstream failures that are expensive to debug. Featuresmith gives you a lightweight, composable toolkit to understand and validate your data before it causes problems.
- Profile datasets to understand distributions, nulls, and cardinality
- Define validation rules as code, not configuration
- Run analysis from the CLI or integrate into any Python workflow
- Designed to scale from a single script to a full CI/CD pipeline
What Should I Already Know?
Required Knowledge
- • Basic Python syntax (functions, imports, dictionaries)
- • Basic tabular data concepts (rows, columns, CSV files)
Helpful (Not Required)
- • Experience with pandas or Polars DataFrames
- • Basic Machine Learning concepts (train/test split, target variables)
- • Basic command-line terminal usage
Installation
Install Featuresmith from PyPI using pip:
bash
# Python SDK only (import featuresmith)pip install featuresmith-core# CLI & Python SDK (featuresmith CLI command)pip install featuresmith-cliRequires Python 3.11 or higher. Featuresmith uses Polars and Pandas under the hood, which are installed automatically.
Quick Start
Run your first dataset review using the pre-packaged titanic.csv dataset:
quickstart.py
python
import featuresmith as fs# 1. Load dataset (CSV, Parquet, Excel, pandas/Polars DataFrame)dataset = fs.load("examples/data/processed/titanic.csv")print(f"Loaded {dataset.row_count} rows across {dataset.column_count} columns.")# 2. Perform automated dataset code review with 10 reviewersreview_res = fs.review(dataset, target_column="survived")print(review_res.overall_summary)# 3. Extract 0–100 ML Readiness Scorecardscorecard = fs.score(review_res)if scorecard: print(f"ML Readiness Score: {scorecard.overall:.1f}/100")# 4. Compile an inspectable remediation Plan from accepted recommendationsplan = fs.plan(review_res, accept=["rec.quality.missingness.cabin"])print(f"Plan: {len(plan.items)} step(s)")Explore the docs
InstallationInstall Featuresmith via pip, uv, or build from source.Read moreQuick StartLoad a dataset, run automated reviews, and score in minutes.Read moreMental Model & WorkflowLearn how load(), profile(), review(), score(), and diff() fit together.Read moreBeginner GlossaryPlain-language guide to 22 technical terms (DataFrame, Polars, Leakage, Score).Read moreTarget Column ConceptUnderstand target variables and how declaring target_column unlocks leakage detection.Read moreInterpreting FindingsLearn how to interpret review findings, assess severity, and decide on fixes.Read moreInteractive NotebooksHands-on Jupyter notebooks covering review, leakage, score, and diff.Read morePython SDK ReferenceFull API reference for load(), profile(), review(), score(), and diff().Read moreCLI ReferenceCommand-line interface for review, analyze, diff, and score.Read more