Create a Streamlit application that has a text field to enter a URL (default value: https://raw.githubusercontent.com/mwaskom/seaborn-data/master/penguins.csv). The app should read the CSV file (and cache it) from the URL and display a DataFrame. Add controls to do the following: - Control how many rows are displayed - A checkbox to determine to randomly shuffle the DataFrame
Drop files here
or click to upload
import streamlit as st
import pandas as pd
# Title of the app
st.title("Penguins Data Viewer")
# Input field for URL
url = st.text_input(
"Enter the URL of the CSV file:",
value="https://raw.githubusercontent.com/mwaskom/seaborn-data/master/penguins.csv"
)
# Checkbox to shuffle the DataFrame
shuffle_data = st.checkbox("Shuffle DataFrame")
# Input for the number of rows to display
rows_to_display = st.slider(
"Select the number of rows to display:",
min_value=1, max_value=100, value=10
)
@st.cache_data
def load_data(url):
return pd.read_csv(url)
# Load the data
try:
df = load_data(url)
if shuffle_data:
df = df.sample(frac=1).reset_index(drop=True)
# Display the DataFrame limited to the number of rows selected
st.dataframe(df.head(rows_to_display))
except Exception as e:
st.error(f"Error loading data: {e}")
Hi! I can help you with any questions about Streamlit and Python. What would you like to know?