Streamlit
1 Introduction to Streamlit
1.1 What is Streamlit?
1.2 Why use Streamlit?
1.3 Setting up the environment
1.4 Creating your first Streamlit app
2 Basic Components
2.1 Text elements
2.1 1 Displaying text
2.1 2 Formatting text
2.2 Data display elements
2.2 1 Displaying data frames
2.2 2 Displaying tables
2.3 Input widgets
2.3 1 Text input
2.3 2 Number input
2.3 3 Date input
2.3 4 Dropdown selection
2.3 5 Slider
2.3 6 Checkbox
2.3 7 Radio buttons
2.3 8 Buttons
3 Advanced Components
3.1 Interactive widgets
3.1 1 Multiselect
3.1 2 File uploader
3.1 3 Color picker
3.2 Media elements
3.2 1 Displaying images
3.2 2 Displaying videos
3.2 3 Displaying audio
3.3 Chart elements
3.3 1 Line chart
3.3 2 Bar chart
3.3 3 Area chart
3.3 4 Scatter chart
3.3 5 Map chart
4 Layout and Styling
4.1 Layout components
4.1 1 Columns
4.1 2 Tabs
4.1 3 Expander
4.2 Styling elements
4.2 1 Custom CSS
4.2 2 Theming
4.2 3 Adding custom fonts
5 State Management
5.1 Session state
5.1 1 Managing state across reruns
5.1 2 Persisting state
5.2 Caching
5.2 1 Caching functions
5.2 2 Caching data
6 Deployment
6.1 Deploying to Streamlit Sharing
6.1 1 Setting up Streamlit Sharing
6.1 2 Deploying your app
6.2 Deploying to other platforms
6.2 1 Deploying to Heroku
6.2 2 Deploying to AWS
6.2 3 Deploying to Google Cloud
7 Best Practices
7.1 Writing clean and maintainable code
7.2 Optimizing performance
7.3 Handling errors and exceptions
7.4 Version control with Git
8 Advanced Topics
8.1 Integrating with other libraries
8.1 1 Integrating with Pandas
8.1 2 Integrating with Plotly
8.1 3 Integrating with TensorFlow
8.2 Building complex apps
8.2 1 Creating multi-page apps
8.2 2 Handling authentication
8.2 3 Building interactive dashboards
8.3 Custom components
8.3 1 Creating custom widgets
8.3 2 Extending Streamlit with custom components
9 Case Studies
9.1 Building a data exploration app
9.2 Building a machine learning model deployment app
9.3 Building a real-time data visualization app
Displaying Data Frames in Streamlit

Displaying Data Frames in Streamlit

Key Concepts

Displaying data frames in Streamlit involves using functions that allow you to visualize tabular data directly within your web application. The primary functions for this purpose are st.dataframe() and st.table(). Understanding these functions and their use cases is crucial for effectively presenting data in your Streamlit apps.

1. st.dataframe()

st.dataframe() is used to display a dynamic, interactive table. This function is particularly useful when you want users to be able to scroll through large datasets or sort and filter data within the table. It leverages Pandas DataFrames, making it easy to integrate with data processing in Python.

Example:

import streamlit as st
import pandas as pd

data = {
    "Name": ["Alice", "Bob", "Charlie"],
    "Age": [25, 30, 35],
    "City": ["New York", "Los Angeles", "Chicago"]
}

df = pd.DataFrame(data)
st.dataframe(df)
    

In this example, a Pandas DataFrame is created and displayed using st.dataframe(). The resulting table is interactive, allowing users to scroll, sort, and filter the data.

2. st.table()

st.table() is used to display a static table. Unlike st.dataframe(), this function renders a non-interactive table, which is useful when you want to present a snapshot of data without any dynamic features. It is ideal for small datasets or when the data does not need to be manipulated by the user.

Example:

import streamlit as st
import pandas as pd

data = {
    "Name": ["Alice", "Bob", "Charlie"],
    "Age": [25, 30, 35],
    "City": ["New York", "Los Angeles", "Chicago"]
}

df = pd.DataFrame(data)
st.table(df)
    

In this example, the same DataFrame is displayed using st.table(). The resulting table is static and does not allow for scrolling, sorting, or filtering.

Analogies

Think of st.dataframe() as a dynamic spreadsheet that users can interact with, similar to Google Sheets. They can scroll through rows and columns, sort data by clicking on headers, and even filter data based on specific criteria. On the other hand, st.table() is like a printed table in a book. It presents the data in a clear, structured format but does not allow for any user interaction.

Conclusion

By understanding and utilizing st.dataframe() and st.table(), you can effectively display tabular data in your Streamlit applications. Whether you need a dynamic, interactive table or a static snapshot of data, these functions provide the flexibility to meet your specific needs.