B-Vista: A powerful data visualization and exploration tool for pandas DataFrames.
Project description
๐ B-vista
Visual, Scalable, and Real-Time Exploratory Data Analysis โ Built for modern notebooks and the browser.
What is it?
B-vista is a full-stack Exploratory Data Analysis (EDA) interface for pandas DataFrames. It connects a Flask + WebSocket backend to a dynamic React frontend, offering everything from descriptive stats to missing data diagnostics โ in real-time.
| Testing | |
|---|---|
| Package | |
| Meta |
๐ฏ Designed for
Data Scientists ยท Analysts ยท Educators
Teams collaborating over datasets
๐ Contents
- โจ Main Features
- ๐ Quickstart
- ๐ฆ Installation
- ๐ ๏ธ Environment & Compatibility
- ๐ Documentation
- ๐ Usage Examples
- ๐ก In the News
- ๐งโ๐ป Developer Setup
- ๐ Project Structure
- ๐ค Contributing
- ๐ Versioning
- ๐ License
โจ Main Features
B-vista transforms how you explore and clean pandas DataFrames. With just a few clicks or lines of code, you get a comprehensive, interactive EDA experience tailored for effecient workflows.
-
๐ Descriptive Statistics
Summarize distributions with enhanced stats including skewness, kurtosis, Shapiro-Wilk normality, and z-scoresโbeyond standard.describe(). -
๐ Correlation Matrix Explorer
Instantly visualize relationships using Pearson, Spearman, Kendall, Mutual Info, Partial, Robust, and Distance correlations. -
๐ Distribution Analysis
Generate histograms, KDE plots, box plots (with auto log-scaling), and QQ plots for deep insight into variable spread and outliers. -
๐งผ Missing Data Diagnostics
Visualize missingness (matrix, heatmap, dendrogram), identify patterns, and classify gaps using MCAR/MAR/NMAR inference methods. -
๐ ๏ธ Smart Data Cleaning
Drop or impute missing values with Mean, Median, Mode, Forward/Backward Fill, Interpolation, KNN, Iterative, Regression, or Autoencoder. -
๐ Data Transformation Engine
Cast column types, format as time or currency, normalize/standardize, rename or reorder columnsโall with audit-safe tracking. -
๐งฌ Duplicate Detection & Resolution
Automatically detect, isolate, or remove duplicate rows with real-time filtering. -
๐ Inline Cell Editing & Updates
Update any cell in-place and sync live across sessions via WebSocket-powered pipelines. -
๐ Seamless Dataset Upload
Drag-and-drop or API-based DataFrame ingestion using secure, session-isolated pickle transport.
Where to get it
the source code is currently hosted on Github at โ Source code.
Binary installers for the latest released version are available at the โ Python Package Index (PyPI)
๐ฆ Installation
#PYPI
pip install bvista
#Conda
conda install -c conda-forge bvista
๐ Quickstart
The fastest way to get started (in a notebook):
import bvista
df = pd.read_csv("dataset.csv")
bvista.show(df)
Or from the terminal:
git clone https://github.com/Baci-Ak/b-vista.git
cd b-vista
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
pip install -e .
python backend/app.py
Frontend runs separately:
cd frontend
npm install
npm start
๐ฆ Installation
๐งช From Source (Editable Mode)
git clone https://github.com/Baci-Ak/b-vista.git
cd b-vista
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
pip install -e .
๐ก You must also start the frontend โ see Frontend Setup
๐ฆ Conda Environment (Optional)
conda create -n bvista python=3.10
conda activate bvista
pip install -r requirements.txt
pip install -e .
๐น PyPI (coming soon)
pip install bvista
๐ณ Docker (planned)
Future releases will support Dockerized deployment.
๐ ๏ธ Environment & Compatibility
| Tool | Version |
|---|---|
| Python | โฅ 3.7 (tested on 3.10) |
| Node.js | ^18.x |
| npm | ^9.x |
๐งฉ Common Setup Fixes
-
npm startfails:rm -rf node_modules package-lock.json npm install
-
Flask not reachable: check
localhost:5050, free port, or restart backend -
WebSocket not connecting: ensure both backend and frontend are live
๐ Documentation
- Getting Started
- Installation
- Web UI Guide
- Notebook Integration
- API Endpoints
- WebSocket Events
- EDA Features
- Dev Architecture
๐ See
/docsfolder for all guides
๐ Usage Examples
1. Notebook + UI
import pandas as pd
import bvista
df = pd.read_csv("data.csv")
bvista.show(df)
2. API Upload
curl -X POST http://localhost:5050/api/upload \
-F 'file=@your_file.csv'
3. Trigger WebSocket
socketio.emit("data_update", {"status": "DataFrame updated"})
Full API listed here
๐ก In the News / Inspiration
"B-vista solves the problem of static pandas outputs โ it makes DataFrames interactive, shareable, and explorable."
โ Community Contributor, Beta Tester
- Inspired by the gaps in tools like D-Tale, Lux, and pandas-profiling
- Designed for real-world data workflows, not just pretty plots
- UI built from scratch for speed, clarity, and scalability
๐ Related Resources
๐งโ๐ป Developer Setup & Contributing
Run the Backend
cd backend
python app.py
Run the Frontend
cd frontend
npm install
npm start
๐ Project Structure
๐ฆ b-vista
โโโ backend/ โ Flask API, WebSocket, models/
โโโ frontend/ โ React app (Vite)
โโโ bvista/ โ Notebook integration module
โโโ docs/ โ Markdown documentation
โโโ tests/ โ Unit & integration tests
โโโ datasets/ โ Sample CSVs for demos
โโโ requirements.txt
โโโ setup.py
โโโ README.md
๐ค Contributing
We welcome PRs and feedback!
Start here โ docs/development/contributing.md
- Dev setup instructions
- Code style & linting
- GitHub Actions (planned)
- Test suite guide
๐ Versioning
Follows Semantic Versioning
Current: v0.1.0 (pre-release)
Expect fast iteration and breaking changes until 1.0.0
๐ License
B-vista is open-source and released under the BSD 3.
Contributions, forks, and usage are welcome โ just credit the project ๐
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 Distribution
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 bvista-0.1.25.tar.gz.
File metadata
- Download URL: bvista-0.1.25.tar.gz
- Upload date:
- Size: 11.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dbaca1127f0751815744cf06ca0e730cacabc661ca541aa967b006bdee251aec
|
|
| MD5 |
8dd364f99d54afb6dc1988a791ac8c47
|
|
| BLAKE2b-256 |
04c85c5709ac7a163763a1381a14e9cf8daebc27895fd160a381d61b0aca1fa9
|
File details
Details for the file bvista-0.1.25-py3-none-any.whl.
File metadata
- Download URL: bvista-0.1.25-py3-none-any.whl
- Upload date:
- Size: 11.3 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3fc89057a52c658ca74a35995cfdcad8d03c26cca726f3f472cba2e44217f2ff
|
|
| MD5 |
17fdcbef98e6706f1aa2f633b213055e
|
|
| BLAKE2b-256 |
104ce16ef920b7bf09559498e727205c01c9c30b9ad77b9c7706723ff0ca6677
|