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
To upload files, please first save the app
import streamlit as st
import pandas as pd
st.title("Penguins Data Viewer")
# Text input for the URL
url = st.text_input("Enter CSV URL:", "https://raw.githubusercontent.com/mwaskom/seaborn-data/master/penguins.csv")
# Cache the data loading function
def load_data(url):
data = pd.read_csv(url)
return data
# Load data from the URL
if url:
try:
data = load_data(url)
except Exception as e:
st.error(f"Error loading data: {e}")
data = None
else:
data = None
# If data is loaded successfully, display it
if data is not None:
# Checkbox to shuffle the data
display_random = st.checkbox("Shuffle Data")
if display_random:
data = data.sample(frac=1).reset_index(drop=True)
# Slider to control number of rows displayed
num_rows = st.slider("Select number of rows to display:", min_value=1, max_value=len(data), value=5)
# Display the DataFrame
st.dataframe(data.head(num_rows))
Hi! I can help you with any questions about Streamlit and Python. What would you like to know?