LEARN

Displaying DataFrames in Streamlit

A guide to displaying and interacting with DataFrames in Streamlit, including filtering, styling, and interactive features.

Archie Sarre Wood
Archie Sarre Wood

Displaying a DataFrame in Streamlit

Streamlit provides built-in functions to display DataFrames, making it easy to visualize tabular data in an interactive way. The primary methods for displaying DataFrames are st.dataframe() and st.table().

Basic Example

import streamlit as st
import pandas as pd

# Sample DataFrame
data = pd.DataFrame({
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'Score': [85, 90, 78]
})

st.dataframe(data)

Using st.table() for Static Data

If you need a non-scrollable static table, use st.table():

st.table(data)

Interactive DataFrame with Filtering

Streamlit allows users to filter and edit data using interactive widgets:

import numpy as np

data['Score'] = np.random.randint(50, 100, size=len(data))
st.dataframe(data.style.highlight_max(axis=0))

Displaying Data in Evidence

For structured data visualization and reporting, Evidence provides a way to display tabular data using the <DataTable/> component. Unlike Streamlit, which requires Python scripting, Evidence enables query-driven, dynamic tables that update automatically based on the dataset.

Example: Data Table in Evidence

```sql my_query 
SELECT name, age, score 
FROM users 
```

<DataTable data={my_query} />

This approach ensures that tables remain dynamic and query-driven, allowing users to explore live data without manual refreshes or Python scripts. Evidence’s Markdown-like syntax makes it easy to embed and format DataFrames within reports.

Streamlit DataFrames vs. Evidence Data Tables

FeatureStreamlitEvidence
Easy Markdown Syntax✖️✔️
SQL-Driven Tables✖️✔️
Interactive Sorting & Filtering✔️✔️
Python-Based DataFrames✔️✖️

For interactive data visualization and reporting, Evidence’s <DataTable/> provides a more structured, SQL-native approach to data exploration.

Check out more features in the Evidence documentation.

Get Started with Evidence

Build beautiful data apps using Evidence

  • Ship reports in hours
  • Terse, expressive syntax
  • All in version control

Start Free Trial →