timmy ревизій цього gist 10 months ago. До ревизії
Без змін
timmy ревизій цього gist 2 years ago. До ревизії
1 file changed, 21 insertions, 21 deletions
edit_employee_data.py
| @@ -3,53 +3,53 @@ import pandas as pd | |||
| 3 | 3 | import yaml | |
| 4 | 4 | from yaml.loader import SafeLoader | |
| 5 | 5 | ||
| 6 | - | # Read YAML file | |
| 6 | + | # 讀取 YAML 檔案 | |
| 7 | 7 | def read_yaml(file_path): | |
| 8 | 8 | with open(file_path, 'r') as file: | |
| 9 | 9 | data = yaml.load(file, Loader=SafeLoader) | |
| 10 | 10 | return data | |
| 11 | 11 | ||
| 12 | - | # Write to YAML file | |
| 12 | + | # 寫入 YAML 檔案 | |
| 13 | 13 | def write_yaml(file_path, data): | |
| 14 | 14 | with open(file_path, 'w') as file: | |
| 15 | 15 | yaml.dump(data, file) | |
| 16 | 16 | ||
| 17 | - | # Read data | |
| 17 | + | # 讀取資料 | |
| 18 | 18 | yaml_file = 'data.yaml' | |
| 19 | 19 | data = read_yaml(yaml_file) | |
| 20 | 20 | ||
| 21 | - | # Convert data to DataFrame | |
| 21 | + | # 轉換資料為 DataFrame | |
| 22 | 22 | df = pd.DataFrame(data['employees']) | |
| 23 | 23 | ||
| 24 | - | # Display DataFrame | |
| 25 | - | st.write('## Employee Data Table') | |
| 24 | + | # 顯示 DataFrame | |
| 25 | + | st.write('## 員工資料表') | |
| 26 | 26 | st.write(df) | |
| 27 | 27 | ||
| 28 | - | # Allow user to edit data | |
| 29 | - | st.write('## Edit Employee Data') | |
| 30 | - | edited_df = st.data_editor(df) | |
| 28 | + | # 允許用戶編輯資料,並隱藏 City 欄位 | |
| 29 | + | st.write('## 編輯員工資料') | |
| 30 | + | edited_df = st.data_editor(df.drop(columns=['City'])) | |
| 31 | 31 | ||
| 32 | - | # When user submits edits, write data back to YAML file | |
| 33 | - | if st.button('Save Changes'): | |
| 32 | + | # 當用戶提交修改後,將資料寫回 YAML 檔案,但要保留 City 欄位 | |
| 33 | + | if st.button('儲存修改'): | |
| 34 | + | edited_df['City'] = df['City'] # 將原始資料中的 City 欄位加回來 | |
| 34 | 35 | data['employees'] = edited_df.to_dict(orient='records') | |
| 35 | 36 | write_yaml(yaml_file, data) | |
| 36 | - | st.success('Changes saved successfully!') | |
| 37 | + | st.success('修改成功儲存!') | |
| 37 | 38 | ||
| 38 | - | # Hide certain columns | |
| 39 | + | # 隱藏某些欄位 | |
| 39 | 40 | columns_to_hide = ['Salary'] | |
| 40 | 41 | df_visible = df.drop(columns=columns_to_hide) | |
| 41 | 42 | ||
| 42 | - | # Display DataFrame with hidden columns | |
| 43 | - | st.write('## Employee Data Table (Filtered)') | |
| 43 | + | # 顯示隱藏某些欄位後的 DataFrame | |
| 44 | + | st.write('## 員工資料表 (過濾後)') | |
| 44 | 45 | st.write(df_visible) | |
| 45 | 46 | ||
| 46 | - | # Interaction: Slider | |
| 47 | - | age_filter = st.slider('Select age range', 20, 30, (20, 30)) | |
| 47 | + | # 互動元素:滑桿 | |
| 48 | + | age_filter = st.slider('選擇年齡範圍', 20, 30, (20, 30)) | |
| 48 | 49 | ||
| 49 | - | # Filter DataFrame | |
| 50 | + | # 篩選 DataFrame | |
| 50 | 51 | filtered_df = df_visible[(df_visible['Age'] >= age_filter[0]) & (df_visible['Age'] <= age_filter[1])] | |
| 51 | 52 | ||
| 52 | - | # Display filtered DataFrame | |
| 53 | - | st.write('## Filtered Employee Data Table') | |
| 53 | + | # 顯示篩選後的 DataFrame | |
| 54 | + | st.write('## 過濾後的員工資料表') | |
| 54 | 55 | st.write(filtered_df) | |
| 55 | - | ||
timmy ревизій цього gist 2 years ago. До ревизії
2 files changed, 71 insertions
data.yaml(файл створено)
| @@ -0,0 +1,16 @@ | |||
| 1 | + | employees: | |
| 2 | + | - Age: 34 | |
| 3 | + | City: New York | |
| 4 | + | Name: Alice | |
| 5 | + | Occupation: Engineer | |
| 6 | + | Salary: 70000 | |
| 7 | + | - Age: 27 | |
| 8 | + | City: Los Angeles | |
| 9 | + | Name: Bob | |
| 10 | + | Occupation: Doctor | |
| 11 | + | Salary: 120000 | |
| 12 | + | - Age: 22 | |
| 13 | + | City: Chicago | |
| 14 | + | Name: Charlie | |
| 15 | + | Occupation: Artist | |
| 16 | + | Salary: 50000 | |
edit_employee_data.py(файл створено)
| @@ -0,0 +1,55 @@ | |||
| 1 | + | import streamlit as st | |
| 2 | + | import pandas as pd | |
| 3 | + | import yaml | |
| 4 | + | from yaml.loader import SafeLoader | |
| 5 | + | ||
| 6 | + | # Read YAML file | |
| 7 | + | def read_yaml(file_path): | |
| 8 | + | with open(file_path, 'r') as file: | |
| 9 | + | data = yaml.load(file, Loader=SafeLoader) | |
| 10 | + | return data | |
| 11 | + | ||
| 12 | + | # Write to YAML file | |
| 13 | + | def write_yaml(file_path, data): | |
| 14 | + | with open(file_path, 'w') as file: | |
| 15 | + | yaml.dump(data, file) | |
| 16 | + | ||
| 17 | + | # Read data | |
| 18 | + | yaml_file = 'data.yaml' | |
| 19 | + | data = read_yaml(yaml_file) | |
| 20 | + | ||
| 21 | + | # Convert data to DataFrame | |
| 22 | + | df = pd.DataFrame(data['employees']) | |
| 23 | + | ||
| 24 | + | # Display DataFrame | |
| 25 | + | st.write('## Employee Data Table') | |
| 26 | + | st.write(df) | |
| 27 | + | ||
| 28 | + | # Allow user to edit data | |
| 29 | + | st.write('## Edit Employee Data') | |
| 30 | + | edited_df = st.data_editor(df) | |
| 31 | + | ||
| 32 | + | # When user submits edits, write data back to YAML file | |
| 33 | + | if st.button('Save Changes'): | |
| 34 | + | data['employees'] = edited_df.to_dict(orient='records') | |
| 35 | + | write_yaml(yaml_file, data) | |
| 36 | + | st.success('Changes saved successfully!') | |
| 37 | + | ||
| 38 | + | # Hide certain columns | |
| 39 | + | columns_to_hide = ['Salary'] | |
| 40 | + | df_visible = df.drop(columns=columns_to_hide) | |
| 41 | + | ||
| 42 | + | # Display DataFrame with hidden columns | |
| 43 | + | st.write('## Employee Data Table (Filtered)') | |
| 44 | + | st.write(df_visible) | |
| 45 | + | ||
| 46 | + | # Interaction: Slider | |
| 47 | + | age_filter = st.slider('Select age range', 20, 30, (20, 30)) | |
| 48 | + | ||
| 49 | + | # Filter DataFrame | |
| 50 | + | filtered_df = df_visible[(df_visible['Age'] >= age_filter[0]) & (df_visible['Age'] <= age_filter[1])] | |
| 51 | + | ||
| 52 | + | # Display filtered DataFrame | |
| 53 | + | st.write('## Filtered Employee Data Table') | |
| 54 | + | st.write(filtered_df) | |
| 55 | + | ||