Skip to main content

AI toolkit for tabular data — auto EDA, data profiling, anomaly detection, and smart transformations on DataFrames.

Project description

tableai

AI toolkit for your DataFrames

PyPI Python License

AI toolkit for tabular data -- auto EDA, data profiling, anomaly detection, and smart transformations on DataFrames. The pandas AI companion.

Runs completely offline. All processing uses local pandas/numpy/scikit-learn. No cloud APIs or internet connection required.

Built by Viet-Anh Nguyen | GitHub


Installation

pip install tableai

With optional dependencies:

pip install tableai[ml]    # scikit-learn for Isolation Forest anomaly detection
pip install tableai[viz]   # matplotlib + seaborn for visualizations
pip install tableai[all]   # everything

Quick Start

import pandas as pd
import tableai

df = pd.read_csv("your_data.csv")

# Computes per-column statistics: dtypes, null counts, unique values,
# numeric stats (mean/median/std/quartiles/skewness), correlations
# Returns DataProfile with rich notebook display
report = tableai.profile(df)
print(report)

Output:

=== Data Profile ===
Shape: (1000, 8)
Memory usage: 62.6 KB

Column Profiles:
  age (int64)
    Non-null: 950 / 1000 (95.0%)  |  Unique: 60
    Mean: 35.2  |  Std: 12.1  |  Min: 18.0  |  Max: 75.0

  city (object)
    Non-null: 980 / 1000 (98.0%)  |  Unique: 25
    Top values: New York (120), London (98), Tokyo (85)
...

Auto-Clean

# Auto-cleaning: fills nulls (median/mode), removes duplicates,
# clips outliers via IQR method
cleaned_df = tableai.clean(df)

Anomaly Detection

result = tableai.anomalies(df)
print(result)

Output:

=== Anomaly Report ===
Method: iqr
Total rows flagged: 42 / 1000 (4.2%)

  salary: 18 anomalies (min_bound=20000, max_bound=150000)
  age: 7 anomalies (min_bound=5, max_bound=80)
...

Auto Insights

insights = tableai.insights(df)
for insight in insights:
    print(f"- {insight}")

Output:

- Column 'age' has 5.0% missing values
- Strong positive correlation (0.87) between 'hours_worked' and 'salary'
- Column 'income' is highly skewed (skewness=2.31)
- Column 'city' has high cardinality (250 unique values out of 1000 rows)

DataFrame Comparison

diff = tableai.compare(df_old, df_new)
print(diff)

Smart Transformations

transformed_df = tableai.transform(df)
# Auto-encodes categoricals, scales numerics, extracts datetime features

Comparison with Alternatives

Feature tableai pandas-profiling sweetviz
Zero-config profiling Yes Yes Yes
Auto-cleaning Yes No No
Anomaly detection Yes No No
Smart transforms Yes No No
Auto insights (text) Yes No No
DataFrame comparison Yes No Yes
Lightweight (no heavy deps) Yes No No
Notebook-friendly output Yes Yes Yes

API Reference

  • tableai.profile(df) -- Comprehensive data profile
  • tableai.clean(df, **kwargs) -- Auto-clean DataFrame
  • tableai.anomalies(df, method="iqr") -- Detect anomalies
  • tableai.transform(df, **kwargs) -- Smart feature engineering
  • tableai.insights(df) -- Auto-generate text insights
  • tableai.compare(df1, df2) -- Compare two DataFrames

Local-First / Edge AI

This package is designed to work completely offline. All data profiling, cleaning, anomaly detection, and transformations run locally using pandas, numpy, and scikit-learn. No internet connection or cloud APIs are required.

License

MIT License. See LICENSE for details.

Links

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

tableai-0.2.2.tar.gz (34.0 kB view details)

Uploaded Source

Built Distribution

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

tableai-0.2.2-py3-none-any.whl (28.3 kB view details)

Uploaded Python 3

File details

Details for the file tableai-0.2.2.tar.gz.

File metadata

  • Download URL: tableai-0.2.2.tar.gz
  • Upload date:
  • Size: 34.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for tableai-0.2.2.tar.gz
Algorithm Hash digest
SHA256 bd3afec4cc2b42e4f91aeb890d78074975bfe57506faddd6554f8334c786b6fc
MD5 b36c84f1be7d885c5418f7bc80ecf310
BLAKE2b-256 7bd736c6a18b09a1849c84636cbf799c9ded49a22eebfbe48c8519dc7f6c7c04

See more details on using hashes here.

File details

Details for the file tableai-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: tableai-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 28.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for tableai-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 fe9ebbe2e498460ca1e9c87604cd3abc7dc4b1001c47fbc8200273c7b9146a4a
MD5 509c9eb15b9ef5929e84c2d228932187
BLAKE2b-256 e1143da8e4a70895a7f9cbaa731ea76f1f47aff59acd873009a523628777221a

See more details on using hashes here.

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