Skip to main content

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.


Untitled design (6)

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 Build Tests Coverage
Package PyPI Version PyPI Downloads Python
Meta Docs License Status

๐ŸŽฏ Designed for
Data Scientists ยท Analysts ยท Educators
Teams collaborating over datasets


๐Ÿ“š Contents


โœจ 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.

๐Ÿ” See full feature breakdown โ†’


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)

demo_fast

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 start fails:

    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

๐Ÿ”— See /docs folder 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


Download files

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

Source Distribution

bvista-0.1.30.tar.gz (11.2 MB view details)

Uploaded Source

Built Distribution

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

bvista-0.1.30-py3-none-any.whl (11.3 MB view details)

Uploaded Python 3

File details

Details for the file bvista-0.1.30.tar.gz.

File metadata

  • Download URL: bvista-0.1.30.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

Hashes for bvista-0.1.30.tar.gz
Algorithm Hash digest
SHA256 55d09679a7ebbdada7dd7be9bb51e331f03b4b0f4ea9410123fc51b7bc3c5d32
MD5 23f7a86984226064eb3220b72e37a3b2
BLAKE2b-256 419ca7a9614425f4149971a9d020153a0d9afde1337fd63b320d788ba6c18f6e

See more details on using hashes here.

File details

Details for the file bvista-0.1.30-py3-none-any.whl.

File metadata

  • Download URL: bvista-0.1.30-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

Hashes for bvista-0.1.30-py3-none-any.whl
Algorithm Hash digest
SHA256 8e6387dc04eacdaeafb4df23637344b76b1d7cbaff3b55403f519499194b7e54
MD5 303dd82609a747ce6d3f3d9aff122c90
BLAKE2b-256 7b77f64c1e8e313ef0068f9d6c79162df789df62dbb27e1b590bdd8d72dce643

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