Ostatnio aktywny 10 months ago

此程式使用 Streamlit 讀取、編輯並儲存員工資料至 YAML 檔案,提供直覺化 UI 介面,並支援欄位過濾與年齡篩選,適用於企業資料管理。

Rewizja b52f15eaac5692bab2f9b326d5c47259cdd8353d

data.yaml Surowy
1employees:
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
17
edit_employee_data.py Surowy
1import streamlit as st
2import pandas as pd
3import yaml
4from yaml.loader import SafeLoader
5
6# Read YAML file
7def 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
13def write_yaml(file_path, data):
14 with open(file_path, 'w') as file:
15 yaml.dump(data, file)
16
17# Read data
18yaml_file = 'data.yaml'
19data = read_yaml(yaml_file)
20
21# Convert data to DataFrame
22df = pd.DataFrame(data['employees'])
23
24# Display DataFrame
25st.write('## Employee Data Table')
26st.write(df)
27
28# Allow user to edit data
29st.write('## Edit Employee Data')
30edited_df = st.data_editor(df)
31
32# When user submits edits, write data back to YAML file
33if 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
39columns_to_hide = ['Salary']
40df_visible = df.drop(columns=columns_to_hide)
41
42# Display DataFrame with hidden columns
43st.write('## Employee Data Table (Filtered)')
44st.write(df_visible)
45
46# Interaction: Slider
47age_filter = st.slider('Select age range', 20, 30, (20, 30))
48
49# Filter DataFrame
50filtered_df = df_visible[(df_visible['Age'] >= age_filter[0]) & (df_visible['Age'] <= age_filter[1])]
51
52# Display filtered DataFrame
53st.write('## Filtered Employee Data Table')
54st.write(filtered_df)
55
56