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
# Function to read CSV from URL and cache the result.
@st.cache_data
def load_data(url):
return pd.read_csv(url)
st.title('Penguins Data Viewer')
# Text input for URL with a default value.
url = st.text_input('Enter CSV URL:',
'https://raw.githubusercontent.com/mwaskom/seaborn-data/master/penguins.csv')
# Load the data.
try:
df = load_data(url)
st.write('Data loaded successfully!')
st.dataframe(df)
except Exception as e:
st.write('Error loading data:', e)
# Control for number of rows to display.
num_rows = st.slider('Select number of rows to display:', 1, len(df), 10)
# Checkbox to shuffle the DataFrame.
shuffle = st.checkbox('Shuffle DataFrame')
# Display the DataFrame based on controls.
if shuffle:
df = df.sample(frac=1).reset_index(drop=True)
st.table(df.head(num_rows))
Hi! I can help you with any questions about Streamlit and Python. What would you like to know?