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 pandas as pd
import streamlit as st
st.title("CSV URL Viewer")
# URL input field with default value
url = st.text_input("Enter CSV URL:", "https://raw.githubusercontent.com/mwaskom/seaborn-data/master/penguins.csv")
# Cache the data loading
@st.cache_data
def load_data(url):
return pd.read_csv(url)
# Load the data
try:
df = load_data(url)
st.write("Data Loaded successfully!")
except Exception as e:
st.error(f"Error loading data: {e}")
df = pd.DataFrame() # empty DataFrame in case of error
# Display controls
row_limit = st.number_input("Select number of rows to display:", min_value=1, max_value=len(df), value=min(5, len(df)))
shuffle_df = st.checkbox("Shuffle DataFrame")
# Shuffle the DataFrame if the checkbox is checked
if shuffle_df:
df = df.sample(frac=1).reset_index(drop=True)
# Display the DataFrame
st.dataframe(df.head(row_limit))
Hi! I can help you with any questions about Streamlit and Python. What would you like to know?