Create a app that shows a Dataframe with 10 lines and select a columns , include or exclude
To upload files, please first save the app
import streamlit as st
import pandas as pd
import numpy as np
# Generate sample data
def generate_sample_data():
np.random.seed(42)
data = {
'Name': [f'Person {i}' for i in range(1, 11)],
'Age': np.random.randint(20, 70, 10),
'Salary': np.random.randint(30000, 120000, 10),
'Experience': np.random.randint(1, 20, 10),
'Department': np.random.choice(['HR', 'IT', 'Sales', 'Marketing'], 10)
}
return pd.DataFrame(data)
# Create the dataframe
df = generate_sample_data()
# Title
st.title('DataFrame Column Selector')
# Sidebar for column selection
st.sidebar.header('Column Selection')
# Get all column names
all_columns = df.columns.tolist()
# Radio button to choose between include or exclude mode
selection_mode = st.sidebar.radio(
"Selection Mode",
["Include Columns", "Exclude Columns"]
)
if selection_mode == "Include Columns":
# Multi-select for columns to include
selected_columns = st.sidebar.multiselect(
"Select columns to include",
all_columns,
default=all_columns
)
if not selected_columns:
st.warning("Please select at least one column to display")
else:
st.dataframe(df[selected_columns])
else:
# Multi-select for columns to exclude
excluded_columns = st.sidebar.multiselect(
"Select columns to exclude",
all_columns,
default=[]
)
selected_columns = [col for col in all_columns if col not in excluded_columns]
st.dataframe(df[selected_columns])
# Display some statistics
st.header('Data Statistics')
if selected_columns:
st.write(df[selected_columns].describe())
Hi! I can help you with any questions about Streamlit and Python. What would you like to know?