Contents

Bắt đầu với Streamlit: Hướng dẫn thực hành

Streamlit là thư viện Python mã nguồn mở để tạo các ứng dụng web cho các dự án khoa học dữ liệu và học máy. Nó được thiết kế để sử dụng bởi các nhà khoa học dữ liệu và kỹ sư máy học, những người không có kỹ năng phát triển front-end sâu rộng. Nó có cú pháp đơn giản cho phép bạn tạo các ứng dụng web tương tác chỉ với một vài dòng mã.

Streamlit tạo điều kiện thuận lợi cho quá trình tạo các ứng dụng tương tác bằng cách cung cấp nền tảng trực quan giúp đơn giản hóa việc trình bày các khía cạnh kỹ thuật phức tạp. Do đó, người dùng có thể tập trung vào việc kiểm tra và hiển thị dữ liệu, nguyên mẫu hoặc mô hình của họ trong thời gian thực. Do đó, tính năng này cho phép họ nhanh chóng phổ biến những hiểu biết sâu sắc một cách hiệu quả.

Cài đặt Thư viện Streamlit

Tạo một môi trường ảo mới. Điều này sẽ đảm bảo không có xung đột phiên bản gói sau khi cài đặt Streamlit. Sau đó sử dụng pip để cài đặt Streamlit bằng cách chạy lệnh sau:

 pip install streamlit

Sau đó, xác minh cài đặt được cài đặt chính xác.

 streamlit --version

Sau khi cài đặt Streamlit thành công, phiên bản Streamlit hiện tại đã được cài đặt sẽ được hiển thị.

Xây dựng ứng dụng phân tích và làm sạch dữ liệu đơn giản

Để đạt được trình độ thành thạo trong việc sử dụng các khả năng của Streamlit và hiểu được nhiều chức năng của nó, bạn sẽ phát triển một ứng dụng web thân thiện với người dùng cho phép người dùng tải lên tập dữ liệu của họ để làm sạch, phân tích dữ liệu tiếp theo và cuối cùng là trực quan hóa thông tin nói trên.

Mã nguồn hoàn chỉnh có thể được truy cập thông qua kho GitHub, kho lưu trữ này sẵn có cho công chúng truy cập và cộng tác.

Cài đặt và nhập các thư viện cần thiết

Để bắt đầu, hãy cài đặt Pandas, Matplotlib và Seaborn trong môi trường ảo nơi bạn đã cài đặt Streamlit thông qua lệnh sau:

 pip install pandas matplotlib seaborn

Để bắt đầu, trước tiên chúng ta sẽ thiết lập một tập lệnh Python mới và kết hợp tất cả các mô-đun đã cài đặt trước đó vào trong đó.

 import streamlit as st
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns 

Để lại câu trả lời

Tải lên tập dữ liệu và hiển thị nội dung của nó

Nhiệm vụ nhất định yêu cầu triển khai một hàm để xử lý việc đọc tập dữ liệu được tải lên và xử lý tương ứng. Hàm này sẽ xác minh xem tệp được cung cấp có thực sự là tệp CSV (Giá trị được phân tách bằng dấu phẩy) hợp lệ hay không. Trong trường hợp tệp không tuân theo định dạng này, chức năng sẽ hiển thị thông báo lỗi thích hợp trong thanh bên của ứng dụng. Ngược lại, nếu tệp đọc thành công dưới dạng CSV thì hàm sẽ tạo DataFrame để phân tích thêm.

 def load_data(uploaded_file):
   try:
       df = pd.read_csv(uploaded_file)
       return df
   except Exception as e:
       st.sidebar.error('Error occurred while loading the file.'
                        ' Please make sure it is a valid CSV file.')
       return None

Dưới đây là ví dụ về cách bạn có thể xác định một hàm mới có tên display\_raw\_data bằng cách sử dụng hộp kiểm , dataframe , và subheader ` của Streamlit:pythondef display_raw_data():# Kiểm tra xem hộp kiểm “Hiển thị dữ liệu thô” có được chọn không nếu st.button(“Hiển thị dữ liệu thô”, type=“markdown”):# Hiển thị dữ liệu thô dưới dạng tabledf=pd.DataFrame(raw_data)title=“Raw Data"st.table(df, subcaption=title)

 def explore_raw_data(df):
   st.subheader('Raw Data')
   if st.checkbox('Show Raw Data'):
       st.dataframe(df)

Sau khi tạo DataFrame và trình bày dữ liệu thô ở dạng ban đầu, điều cần thiết là phải thực hiện quy trình làm sạch kỹ lưỡng trên dữ liệu để loại bỏ mọi mâu thuẫn hoặc lỗi có thể xảy ra trong quá trình thu thập dữ liệu. Điều này liên quan đến việc xác định và sửa bất kỳ giá trị bị thiếu, trùng lặp hoặc mục nhập không chính xác. Khi bước này đã được hoàn thành, giai đoạn tiếp theo là tiến hành phân tích dữ liệu bằng các kỹ thuật thống kê như phân tích hồi quy hoặc kiểm tra giả thuyết để khám phá các mô hình và mối quan hệ trong dữ liệu. Cuối cùng, sau khi phân tích dữ liệu, bạn có thể tạo nhiều loại biểu đồ và đồ thị khác nhau để thể hiện trực quan kết quả phân tích của mình để người khác hiểu và giải thích tốt hơn.

Thực hiện làm sạch dữ liệu

Quá trình bắt đầu bằng việc tạo một chức năng chịu trách nhiệm về các hoạt động làm sạch dữ liệu trên DataFrame được cung cấp. Điều này bao gồm việc giải quyết mọi trường hợp thiếu giá trị trong khung, cũng như xác định và loại bỏ mọi mục nhập hàng trùng lặp. Sau đó, khi các tác vụ này được thực hiện thành công, DataFrame kết quả, sau khi trải qua quá trình xem xét và sàng lọc kỹ lưỡng, sẽ được hiển thị cho người dùng cuối thông qua việc sử dụng phương pháp st.dataframe. Chỉ sau khi có xác nhận từ người dùng bằng cách bật công tắc bật tắt boolean “Hiển thị dữ liệu đã làm sạch”, tập dữ liệu đã được làm sạch tỉ mỉ này mới được hiển thị.

 def data_cleaning(df):
   st.header('Data Cleaning')

   # Remove Missing Values
   st.subheader('Handling Missing Values')
   df.dropna(inplace=True)
   st.write("Missing values removed from the dataset.")

   # Remove Duplicate Rows
   st.subheader('Removing Duplicate Rows')
   initial_rows = len(df)
   df.drop_duplicates(inplace=True)
   final_rows = len(df)
   st.write(f"Removed {initial_rows-final_rows} duplicate rows.")

   if st.checkbox('Show Cleaned Data'):
       st.dataframe(df)

Ngoài ra, chức năng này còn hiển thị tổng số hàng trùng lặp đã bị loại bỏ.

Thực hiện phân tích dữ liệu

Chắc chắn, đây là đoạn mã ví dụ trong Pandas trình bày cách xác định hàm phân tích dữ liệu để hiển thị số liệu thống kê mô tả và bản đồ nhiệt tương quan bằng cách sử dụng thư viện seaborn:pythonimport pandas as pdimport seaborn as snsfrom scipy import statsdef analyze_data(df):# Display summary statsprint( “Thống kê tóm tắt:\n”, df.describe())# Hiển thị mối tương quan giữa các cộtcorr=df.corr()print("\nCorrelations:\n”)sns.heatmap(corr, annot=True)return Noneanalyze_data(df) Trong ví dụ này, trước tiên chúng tôi nhập các thư viện cần thiết bao gồm Pandas, Seaborn và SciPy

 def data_analysis(df):
   st.header('Data Analysis')

   # Descriptive Statistics
   st.subheader('Descriptive Statistics')
   st.write(df.describe())

   # Correlation Matrix
   st.subheader('Correlation Matrix')
   corr_matrix = df.corr()
   fig, ax = plt.subplots(figsize=(10, 8))
   sns.heatmap(corr_matrix, annot=True, cmap='coolwarm',
               center=0, ax=ax)
   st.pyplot(fig) 

Chức năng nói trên có thể được sửa đổi để tạo điều kiện thuận lợi cho việc phân tích dữ liệu bổ sung, từ đó cho phép trích xuất những hiểu biết sâu sắc hơn từ tập dữ liệu đã cho.

Thực hiện trực quan hóa dữ liệu

Trực quan hóa dữ liệu đóng vai trò là một chức năng quan trọng trong ứng dụng, cung cấp phương tiện để người dùng hiểu và giải thích dữ liệu thông qua cách trình bày trực quan vừa dễ truy cập vừa thân thiện với người dùng. Do đó, khả năng tùy chỉnh giao diện cốt truyện là rất cần thiết, cho phép người dùng điều chỉnh hình ảnh trực quan theo sở thích hoặc yêu cầu cụ thể của họ.

Để thực hiện nhiệm vụ này, cần phát triển một chức năng cho phép người dùng chọn một cột cụ thể, chỉ định số lượng phân chia thùng mong muốn và xác định màu cụ thể cho biểu đồ. Sau đó, hàm sẽ tạo cả biểu đồ và biểu đồ hộp, đồng thời hiển thị các hình ảnh trực quan này bằng cách sử dụng mô-đun st.pyplot trong Python.

 def data_visualization(df):
   st.header('Data Visualization')

   # Histogram
   st.subheader('Histogram')
   selected_column = st.selectbox("Select a column to visualize:",
                                  df.columns)
   num_bins = st.slider("Select number of bins:",
                        min_value=5, max_value=50, value=20)
   plot_color = st.color_picker("Select histogram color", "#1f77b4")
   plt.figure(figsize=(8, 6))
   plt.hist(df[selected_column], bins=num_bins, edgecolor='black',
            color=plot_color, alpha=0.7)
   plt.xlabel(selected_column)
   plt.ylabel('Frequency')
   st.pyplot(plt)

   # Box Plot
   st.subheader('Box Plot')
   selected_column = st.selectbox("Select a column for box plot:",
                                  df.columns)
   plot_color = st.color_picker("Select box plot color", "#1f77b4")
   plt.figure(figsize=(8, 6))
   sns.boxplot(x=df[selected_column], color=plot_color)
   plt.xlabel(selected_column)
   plt.ylabel('Value')
   st.pyplot(plt) 

Tính đến thời điểm hiện tại, bạn đã sở hữu các khả năng cơ bản của ứng dụng.

Thu thập phản hồi của người dùng

Trong một số trường hợp nhất định, có thể hình dung rằng một tính năng có thể biểu hiện hành vi không lường trước được. Trong những trường hợp như vậy, điều bắt buộc là phải cho phép người dùng truyền đạt cảm xúc của họ về điều tương tự. Một cách tiếp cận phổ biến để đạt được điều này là sử dụng thư điện tử làm phương tiện liên lạc. Mặc dù Streamlit cung cấp một phương tiện để thu thập phản hồi của người dùng thông qua giao diện trực quan nhưng nó vốn không hỗ trợ khả năng truyền email trực tiếp. Tuy nhiên, người ta có thể kết hợp các thư viện bổ sung hoặc dịch vụ của bên thứ ba để tạo điều kiện gửi email từ chính ứng dụng.

Để khơi gợi ý kiến ​​và phản hồi của người dùng, cần tạo một giao diện chức năng cho phép người dùng điền vào bản khảo sát hoặc bảng câu hỏi dưới dạng biểu mẫu trên web. Điều này có thể đạt được bằng cách xác định một hàm trong cơ sở mã cung cấp cho người dùng một biểu mẫu tương tác chứa nhiều trường đầu vào khác nhau để họ nhập phản hồi của mình. Biểu mẫu có thể bao gồm cả câu hỏi đóng (ví dụ: nhiều lựa chọn) cũng như câu hỏi mở (ví dụ: hộp nhập văn bản), tùy thuộc vào mức độ chi tiết và tính cụ thể mong muốn được yêu cầu từ phản hồi của người dùng. Ngoài ra, chức năng này phải cung cấp các cơ chế xác thực và xử lý lỗi thích hợp để đảm bảo tính toàn vẹn và khả năng sử dụng của dữ liệu.

 def feedback_form():
   st.header('Feedback')
   with st.form('Feedback Form'):
       email = st.text_input("Your Email")
       feedback = st.text_area("Feedback")
       submitted = st.form_submit_button("Submit Feedback")
       if submitted:
           # Here, you can send the feedback to the developer's
           # email using external services/APIs
           st.success("Thank you for your feedback!") 

Vui lòng điền vào biểu mẫu sau cùng với thông tin liên hệ và phản hồi của bạn, chúng sẽ được chuyển đến chúng tôi qua thư điện tử để chúng tôi xem xét và hành động nếu thích hợp.

Kiểm soát luồng chương trình của bạn và chạy ứng dụng

Cuối cùng, bắt buộc phải triển khai một chức năng chính tích hợp các chức năng khác nhau được nêu ở trên và chi phối sự phát triển của phần mềm. Ngoài ra, chức năng này phải yêu cầu người dùng tuân thủ các quy định về quyền riêng tư dữ liệu đã chỉ định trước khi xử lý bất kỳ tập dữ liệu nào được gửi.

 def main():
   st.title('Data Cleaning, Analysis, and Visualization App')

   st.sidebar.header('Upload Dataset')
   uploaded_file = st.sidebar.file_uploader('Upload a CSV file', type=['csv'])

   agree_terms = st.sidebar.checkbox("I agree to the terms")

   if uploaded_file is not None and agree_terms:
       df = load_data(uploaded_file)

       if df is not None:
           explore_raw_data(df)
           data_cleaning(df)
           data_analysis(df)
           data_visualization(df)

           feedback_form()

Khi chạy tập lệnh Python, người ta có tùy chọn thực thi nó dưới dạng một chương trình độc lập độc lập hoặc bằng cách nhập nội dung của nó dưới dạng mô-đun thông qua việc sử dụng cấu trúc if \_\_name\_\_=='\_\_main\_\_'. Điều này cho phép sự linh hoạt trong cách thực thi mã và cho phép tính mô đun hóa trong các dự án lớn hơn.

 if __name__ == '__main__':
   main() 

Vui lòng đi tới thiết bị đầu cuối và tìm thư mục nơi dự án của bạn được lưu trữ. Khi bạn đã điều hướng đến vị trí đó, hãy thực hiện lệnh sau để khởi chạy ứng dụng:

 streamlit run main.py

Khi thực hiện thao tác được chỉ định trong tệp chính, được ký hiệu là “main.py”, Streamlit sẽ tự động tạo hai URL riêng biệt-một URL để truy cập cục bộ và một URL khác để kết nối từ xa. Bạn có thể tùy ý sử dụng các URL này và có thể được sử dụng để tạo điều kiện thuận lợi cho việc tương tác với ứng dụng của bạn.

/vi/images/getting-started-with-streamlit-a-practical-guide-output-image.jpg

Sản lượng sản phẩm tiếp theo được thể hiện như sau:

Trình duyệt của bạn không hỗ trợ thẻ video.

Quá trình xây dựng các ứng dụng động dựa trên internet cho khoa học dữ liệu ngày càng trở nên dễ tiếp cận, đòi hỏi trình độ phát triển web ở mức tối thiểu để tạo ra giao diện trực quan cho dự án của một người.

Bạn Vẫn Có Nên Học Phát Triển Web Không?

Mức độ mà một người nên theo đuổi các kỹ năng phát triển web để tạo ra các ứng dụng web mạnh mẽ với các tính năng phức tạp sẽ phụ thuộc vào mục tiêu cá nhân của họ. Trong trường hợp cần có một bộ khả năng toàn diện, bao gồm thiết kế giao diện người dùng phức tạp và các chức năng nâng cao, việc nắm vững các công nghệ phát triển web có thể mang lại lợi ích. Tuy nhiên, điều quan trọng cần lưu ý là khi sử dụng Streamlit, việc thao tác các chi tiết nhỏ về chức năng và trình bày trực quan của ứng dụng sẽ kém linh hoạt hơn so với các phương pháp khác.