DataFusion - Python Application

Project as part of the Data Warehousing subject.


Project maintained by dawidolko Hosted on GitHub Pages — Theme by dawidolko

DataFusion

📊 A CSV workbench that runs on the desktop — load, clean, encode, scale and plot a dataset without writing a line of pandas

DataFusion is a desktop application for the part of data science that comes before the model: opening a file, finding out what is wrong with it, and fixing it. Load a CSV or one of the two bundled UCI datasets, read the statistics, fill or drop the missing values, encode the categorical columns, scale the numeric ones, and draw the chart that shows whether any of it worked.

Every transformation happens on a working copy, and one button puts the original data back — so exploring destructively is safe.

Python FreeSimpleGUI pandas scikit-learn Matplotlib License


🎯 Key Features


🖼️ Screenshots

The main view Descriptive statistics
The DataFusion main window with a loaded dataset Descriptive statistics for the loaded frame
Cleaning and transformation Correlation matrices
Missing values, duplicates and encoding controls Pearson and Spearman side by side
Charts Scaling results
Histogram, box plot and the other chart types Columns after standard and min-max scaling

📚 Bundled Datasets

Dataset Rows What it is
UCI Adult 48 842 Census data; the classic income-prediction benchmark.
Chronic Kidney Disease 400 Clinical measurements in ARFF, with many missing values — which is the point of loading it.

Both live in database/, with their original .names and .info files, so the column meanings are not lost.


🎬 Demo

DataFusion: a short scroll through the live site


🛠️ Technology Stack

Technology Version Role
FreeSimpleGUI 5.1 The window, tabs, tables and dialogs.
pandas 2.0+ The data frame everything operates on.
NumPy — Numeric operations underneath.
scikit-learn 1.3+ StandardScaler and MinMaxScaler.
SciPy — Skewness and kurtosis.
Matplotlib 3.8+ Charts, embedded in the window through FigureCanvasTkAgg.
Pillow — Icons and image export.

🚀 Getting Started

Prerequisites

1. Clone the repository

git clone https://github.com/dawidolko/DataFusion-App-Python.git
cd DataFusion-App-Python

2. Install dependencies

pip install -r src/requirements.txt

3. Run

python src/main.py

The window opens with a start screen; Go to data loads either a bundled dataset or a CSV of your own.


📁 Project Structure

DataFusion-App-Python/
├── src/
│   ├── main.py             # the whole application: window, tabs, transformations, charts
│   └── assets/             # icons and the screenshots used above
├── database/
│   ├── adult/              # UCI Adult: data, test split, column names
│   └── chronic/            # Chronic Kidney Disease in ARFF, with its info file
└── docs/                   # documentation, task descriptions

♿ Accessibility

An accessibility panel in the corner of every page changes text size, contrast, font and motion, and remembers the choice on the device. It sits on top of the markup and does not replace accessible markup.

📄 License

The application code is MIT © Dawid Olko. Dependencies keep their own licences, listed in CREDITS.md.