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.29.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.29-py3-none-any.whl (11.3 MB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: bvista-0.1.29.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.29.tar.gz
Algorithm Hash digest
SHA256 4ad0d1d84c878346c3328cc551e90c3b5574da8de92e7a8f8211fcebfa470d55
MD5 153ad3ec00626e4ec0b47e0e49d97cbf
BLAKE2b-256 77ed14fd038039134a608b6836a4c0b517f9b330d19f56b1f503c05abf044cd5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: bvista-0.1.29-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.29-py3-none-any.whl
Algorithm Hash digest
SHA256 60a3101a7cc4288b2f4ed3ef5c01bbdef5b9893e9a1bf4428f7b1c6d1feb60cf
MD5 b785680e30697cbfd72856177e9ae8ef
BLAKE2b-256 e3ecf9cacc859bcf203627e7aecb140e0ca1878225be853a5b541783c66d7c36

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