Skip to content

Luxin Documentation

Welcome to the Luxin documentation! Luxin is a Streamlit-first Python package for interactive data exploration with drill-down capabilities.

What is Luxin?

Luxin helps you explore aggregated data interactively through an intuitive, Streamlit-native interface. Click on aggregated rows to instantly see the underlying detail data in a side panel.

Quick Navigation

Key Features

  • ๐Ÿ” Interactive drill-down - Click on aggregated rows to see source data instantly
  • ๐Ÿ“Š Streamlit-native UI - Fully integrated with Streamlit's native widgets
  • ๐Ÿผ Pandas support - Works seamlessly with pandas DataFrames
  • ๐ŸŽฏ Automatic tracking โ€” TrackedDataFrame tracks source rows through groupby().agg()
  • ๐Ÿš€ Zero-config โ€” sensible defaults for a working drill-down table
  • ๐Ÿฆ€ Polars support โ€” optional luxin[polars] converters
  • ๐Ÿงญ Phase 3 (v0.3.0) โ€” optional multi-level drill, luxin.compare, data-quality panel, aggregation builder (InspectorConfig flags; see User Guide)

Installation

pip install luxin

Optional: pip install luxin[notebook] (Jupyter/HTML via luxin-nb) ยท pip install luxin[polars] ยท pip install luxin[compare] (SciPy for comparison significance tests).

Streamlit: use >= 1.35 so interactive row selection works (see Troubleshooting).

Quick Start

import streamlit as st
from luxin import Inspector, TrackedDataFrame

# Create a TrackedDataFrame
df = TrackedDataFrame({
    'category': ['A', 'A', 'B', 'B', 'C'],
    'sales': [100, 150, 200, 250, 300]
})

# Aggregate data - tracking is automatic
agg = df.groupby(['category']).agg({'sales': 'sum'})

# Display with drill-down capability
inspector = Inspector(agg)
inspector.render()

Save this as app.py and run streamlit run app.py to see the interactive dashboard.

Resources

  • ๐Ÿ™ GitHub Repository: https://github.com/eddiethedean/luxin
  • ๐Ÿ“ฆ PyPI Package: https://pypi.org/project/luxin/
  • ๐Ÿ› Issues: https://github.com/eddiethedean/luxin/issues