Skip to main content

Data cleaning, normalization, statistical analysis and AI-powered iterative adjustment

Project description

Stat Chat

Data Cleaning · Normalization · Statistical Analysis · PDF Reports

A Python tool with both a GUI (Tkinter) and CLI interface for analysing tabular data from CSV or Excel files.


Installation

pip install -r requirements.txt

Tkinter ships with standard Python on Windows/macOS. On Linux: sudo apt install python3-tk


Launch

GUI (default)

python main.py

CLI

python main.py --cli --input data.csv [options]

GUI Walkthrough

  1. Load CSV / Excel — opens a file picker; the Data Preview tab fills instantly.
  2. Data Cleaning — tick any combination of:
    • Drop duplicate rows
    • Drop rows with null values
    • Fill nulls (mean / median / mode / zero)
  3. Normalization — choose one method:
    • Z-score — standardise with custom target mean & std (default 0, 1)
    • Min-Max — scale to [0, 1]
    • Robust — median/IQR scaling (outlier-resistant)
  4. Analysis Metrics — tick any combination:
    • Measures of Central Tendency (mean, median, mode)
    • Measures of Dispersion (std dev, variance, IQR, range, CV)
    • Shape stats (skewness, kurtosis)
    • Percentile Statistics (P5–P95)
    • Normality Tests (Shapiro-Wilk)
    • Correlation Matrix (heatmap in PDF)
    • ROC-AUC (enter the binary target column name)
  5. Run Analysis — results appear in the Analysis Results tab.
  6. Save Cleaned Data — exports as CSV, Excel, or JSON.
  7. Export PDF Report — full styled report with tables and charts.

CLI Reference

python main.py --cli --input FILE [options]

File I/O:
  --input, -i PATH          Input CSV or Excel file (required)
  --output, -o PATH         Save cleaned data here
  --output-format           csv | xlsx | json  (default: csv)
  --report, -r PATH         Save PDF report here

Cleaning:
  --drop-duplicates         Remove duplicate rows
  --drop-nulls              Drop rows containing any null
  --fill-nulls STRATEGY     mean | median | mode | zero

Normalization:
  --normalize METHOD        zscore | minmax | robust
  --norm-mean FLOAT         Z-score target mean  (default 0.0)
  --norm-std  FLOAT         Z-score target std   (default 1.0)

Analysis:
  --central-tendency        Mean, median, mode
  --dispersion              Std dev, variance, IQR, range
  --shape                   Skewness & kurtosis
  --percentiles             P5–P95
  --correlation             Pearson correlation matrix
  --roc-auc TARGET_COL      ROC-AUC vs a binary target column
  --all-metrics             Enable all metrics above

Example

python main.py --cli \
  --input sales.csv \
  --output cleaned_sales \
  --output-format xlsx \
  --drop-duplicates \
  --fill-nulls mean \
  --normalize zscore \
  --central-tendency \
  --dispersion \
  --shape \
  --correlation \
  --roc-auc churn \
  --report analysis_report.pdf

Project Structure

statchat/
├── main.py               Entry point (GUI or CLI)
├── requirements.txt
├── core/
│   ├── loader.py         File I/O (CSV, Excel, JSON)
│   ├── cleaner.py        Cleaning & normalization
│   ├── analyzer.py       Statistical metrics
│   └── reporter.py       PDF report generation
├── gui/
│   └── app.py            Tkinter GUI
└── cli/
    └── runner.py         CLI runner

Supported Metrics

Category Metrics
Central Tendency Mean, Median, Mode, Count
Dispersion Std Dev, Variance, Range, IQR, Min, Max, CV
Shape Skewness, Kurtosis
Percentiles P5, P10, P25, P50, P75, P90, P95
Normality Shapiro-Wilk statistic & p-value
Correlation Pearson correlation matrix + heatmap
ROC-AUC Per-feature AUC score + ROC curve plot

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

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

statchat_app-1.0.0-py3-none-any.whl (69.1 kB view details)

Uploaded Python 3

File details

Details for the file statchat_app-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: statchat_app-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 69.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for statchat_app-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 19ac1d5b82035934ea67ec05f3e6ab35031c5350d2a430792dd9b28f3e66d9f4
MD5 7d6d838f6122f668ac9c862d46ad4152
BLAKE2b-256 0b78b34140d36999b6417291a8c44dbfd8119775074e31af9af17dea4ac8b772

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