| 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 |
| 17 |
edit_employee_data.py
· 1.4 KiB · Python
Surowy
import streamlit as st
import pandas as pd
import yaml
from yaml.loader import SafeLoader
# Read YAML file
def read_yaml(file_path):
with open(file_path, 'r') as file:
data = yaml.load(file, Loader=SafeLoader)
return data
# Write to YAML file
def write_yaml(file_path, data):
with open(file_path, 'w') as file:
yaml.dump(data, file)
# Read data
yaml_file = 'data.yaml'
data = read_yaml(yaml_file)
# Convert data to DataFrame
df = pd.DataFrame(data['employees'])
# Display DataFrame
st.write('## Employee Data Table')
st.write(df)
# Allow user to edit data
st.write('## Edit Employee Data')
edited_df = st.data_editor(df)
# When user submits edits, write data back to YAML file
if st.button('Save Changes'):
data['employees'] = edited_df.to_dict(orient='records')
write_yaml(yaml_file, data)
st.success('Changes saved successfully!')
# Hide certain columns
columns_to_hide = ['Salary']
df_visible = df.drop(columns=columns_to_hide)
# Display DataFrame with hidden columns
st.write('## Employee Data Table (Filtered)')
st.write(df_visible)
# Interaction: Slider
age_filter = st.slider('Select age range', 20, 30, (20, 30))
# Filter DataFrame
filtered_df = df_visible[(df_visible['Age'] >= age_filter[0]) & (df_visible['Age'] <= age_filter[1])]
# Display filtered DataFrame
st.write('## Filtered Employee Data Table')
st.write(filtered_df)
| 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 | |
| 56 |