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
- Load CSV / Excel — opens a file picker; the Data Preview tab fills instantly.
- Data Cleaning — tick any combination of:
- Drop duplicate rows
- Drop rows with null values
- Fill nulls (mean / median / mode / zero)
- 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)
- 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)
- Run Analysis — results appear in the Analysis Results tab.
- Save Cleaned Data — exports as CSV, Excel, or JSON.
- 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
Release history Release notifications | RSS feed
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
19ac1d5b82035934ea67ec05f3e6ab35031c5350d2a430792dd9b28f3e66d9f4
|
|
| MD5 |
7d6d838f6122f668ac9c862d46ad4152
|
|
| BLAKE2b-256 |
0b78b34140d36999b6417291a8c44dbfd8119775074e31af9af17dea4ac8b772
|