๐ Streamlit Apps
Streamlit turns data scripts into shareable web apps in minutes. All in pure Python.
Mastering this concept will significantly boost your Python data science skills!
๐ป Code Example:
import streamlit as st import pandas as pd import numpy as np # โโ Page config โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ st.set_page_config( page_title="Pynfinity Analytics", page_icon="๐", layout="wide", ) st.title("๐ Pynfinity โ Learning Analytics Dashboard") st.caption("Built by santoshtvk | Powered by Streamlit") # โโ Sidebar filters โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ with st.sidebar: st.header("โ๏ธ Filters") selected_course = st.selectbox("Course", ["All", "Python", "AI", "DevOps"]) min_score = st.slider("Min Score", 0, 100, 60) show_premium = st.checkbox("Premium users only", value=False) # โโ Generate demo data โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ np.random.seed(42) n = 200 df = pd.DataFrame({ "username": [f"pynfinity_user_{i}" for i in range(n)], "course" : np.random.choice(["Python", "AI", "DevOps"], n), "score" : np.random.randint(30, 100, n), "premium" : np.random.choice([True, False], n, p=[0.3, 0.7]), "hours" : np.round(np.random.uniform(1, 12, n), 1), }) # Apply filters filtered = df[df["score"] >= min_score] if selected_course != "All": filtered = filtered[filtered["course"] == selected_course] if show_premium: filtered = filtered[filtered["premium"] == True] # โโ KPI metrics โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ col1, col2, col3, col4 = st.columns(4) col1.metric("Total Learners", len(filtered)) col2.metric("Avg Score", f"{filtered['score'].mean():.1f}") col3.metric("Premium Users", filtered["premium"].sum()) col4.metric("Avg Hours/Week", f"{filtered['hours'].mean():.1f}h") # โโ Charts โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ col_a, col_b = st.columns(2) with col_a: st.subheader("Score Distribution") st.bar_chart(filtered["score"].value_counts().sort_index()) with col_b: st.subheader("Course Breakdown") st.bar_chart(filtered["course"].value_counts()) st.subheader("๐ Learner Data") st.dataframe(filtered.head(20), use_container_width=True) # Run: streamlit run app.py
Keep exploring and happy coding! ๐ป