| BUỔI 14: DASHBOARD VỚI STREAMLIT — BIẾN DỮ LIỆU THÀNH ỨNG DỤNG WEB TRONG 5 PHÚT

Được viết bởi thanhdt vào ngày 24/03/2026 lúc 21:19 | 7 lượt xem

Chào mừng các bạn đến với buổi học thứ 14. Sau khi đã làm chủ việc phân tích dữ liệu với Pandas và trực quan hóa với Matplotlib/Seaborn, thách thức tiếp theo là làm sao để chia sẻ những kết quả đó một cách chuyên nghiệp. Hôm nay, chúng ta sẽ học cách sử dụng Streamlit — thư viện Python mạnh mẽ nhất hiện nay để xây dựng các Dashboard dữ liệu (Web Apps) mà không cần biết HTML, CSS hay JavaScript.

[!IMPORTANT]
🚀 Bài học này là một phần quan trọng trong lộ trình: Khóa học Phân tích dữ liệu thực chiến với Python


1️⃣ Tại Sao Lại Là Streamlit?

Trong quá khứ, để tạo một ứng dụng web phân tích dữ liệu, bạn cần một team gồm Data Scientist và Web Developer. Với Streamlit, bạn chỉ cần Python.

  • Dễ học: Viết code giống như viết script Python thông thường.
  • Tương tác cao: Hỗ trợ các widget như slider, button, checkbox chỉ với 1 dòng code.
  • Triển khai nhanh: Tự động cập nhật ứng dụng ngay sau khi bạn lưu file code.

2️⃣ Xây Dựng Ứng Dụng Đầu Tiên

Để bắt đầu, bạn cần cài đặt qua pip: pip install streamlit. Dưới đây là cấu trúc cơ bản của một ứng dụng Dashboard:

import streamlit as st
import pandas as pd
import numpy as np

# Tiêu đề ứng dụng
st.title("My First Data Dashboard")

# Hiển thị văn bản
st.write("Chào mừng bạn đã đến với Dashboard phân tích dữ liệu với Streamlit!")

# Tạo một bảng dữ liệu mẫu
df = pd.DataFrame(
    np.random.randn(10, 2),
    columns=['Giá Vàng', 'Giá Bitcoin']
)

# Hiển thị bảng
st.table(df)

# Hiển thị biểu đồ đường
st.line_chart(df)

3️⃣ Tương Tác Với Người Dùng (Widgets)

Sức mạnh của Dashboard nằm ở khả năng tương tác. Streamlit cung cấp các hàm cực kỳ đơn giản để nhận input từ người dùng:

# Tạo một thanh trượt (slider)
lucky_number = st.sidebar.slider("Chọn con số may mắn của bạn", 0, 100, 50)

# Hiển thị kết quả dựa trên slider
st.write(f"Con số bạn đã chọn là: {lucky_number}")

# Tạo nút nhấn
if st.button("Nhấn vào đây!"):
    st.balloons() # Hiệu ứng bóng bay
    st.success("Bạn đã nhấn nút thành công!")

TỔNG KẾT BUỔI 14

Streamlit đã xóa bỏ ranh giới giữa Phân tích dữ liệu và Phát triển Web. Từ nay, mọi báo cáo của bạn sẽ không còn nằm im trên các file Excel hay Jupyter Notebook khô khan, mà sẽ trở thành những ứng dụng web sống động, có khả năng tương tác và truyền cảm hứng.

Trong buổi tiếp theo, chúng ta sẽ học cách Deploy (đưa Dashboard này lên Internet) để ai cũng có thể truy cập được.


💡 Khám phá cách biến dữ liệu thành giá trị tại: Hướng nghiệp Python – Data Analysis