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
# Title of the app
st.title('Penguins Data Viewer')
# Text field for the URL input
url = st.text_input('Enter the URL of the CSV file:',
value='https://raw.githubusercontent.com/mwaskom/seaborn-data/master/penguins.csv')
# Load data from URL and cache it
@st.cache_data
def load_data(url):
return pd.read_csv(url)
# Load the data
try:
data = load_data(url)
st.success('Data loaded successfully!')
except Exception as e:
st.error(f'Error loading data: {e}')
data = pd.DataFrame() # empty DataFrame if there's an error
# Display controls for number of rows
if not data.empty:
num_rows = st.slider('Select the number of rows to display:', min_value=1, max_value=len(data), value=5)
show_shuffled = st.checkbox('Shuffle DataFrame')
# Shuffle data if checkbox is checked
if show_shuffled:
data = data.sample(frac=1).reset_index(drop=True)
# Display the DataFrame
st.write(data.head(num_rows))
Hi! I can help you with any questions about Streamlit and Python. What would you like to know?