Update app.py
Browse files
app.py
CHANGED
@@ -1,8 +1,7 @@
|
|
1 |
import streamlit as st
|
2 |
import pandas as pd
|
3 |
from transformers import pipeline
|
4 |
-
from datetime import datetime
|
5 |
-
import plotly.express as px
|
6 |
|
7 |
# Oldal konfiguráció
|
8 |
st.set_page_config(page_title="Orvosi Ügyeleti Beosztás Generáló", layout="wide")
|
@@ -24,9 +23,16 @@ def parse_date(value):
|
|
24 |
return datetime.strptime(value, "%d %B %Y")
|
25 |
parsed_date = datetime.strptime(value, "%d %B")
|
26 |
return parsed_date.replace(year=2025)
|
27 |
-
except ValueError:
|
28 |
return None
|
29 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
30 |
# Adatok Excel exportálása
|
31 |
@st.cache_data
|
32 |
def convert_to_excel(data):
|
@@ -52,20 +58,14 @@ if uploaded_file:
|
|
52 |
relevant_data = []
|
53 |
for sheet in sheet_names:
|
54 |
df = excel_data.parse(sheet)
|
55 |
-
|
56 |
-
st.dataframe(df.head())
|
57 |
|
58 |
-
|
59 |
-
if
|
60 |
st.write(f"Releváns adat található a '{sheet}' munkalapon.")
|
61 |
relevant_data.append(df)
|
62 |
else:
|
63 |
-
st.warning(f"A '{sheet}' munkalap nem tartalmaz
|
64 |
-
name_column = st.selectbox(f"Válaszd ki a 'Név' oszlopot a '{sheet}' munkalapon:", df.columns)
|
65 |
-
availability_column = st.selectbox(f"Válaszd ki az 'Elérhetőség' oszlopot a '{sheet}' munkalapon:", df.columns)
|
66 |
-
restriction_column = st.selectbox(f"Válaszd ki a 'Korlátozások' oszlopot a '{sheet}' munkalapon:", df.columns)
|
67 |
-
df.rename(columns={name_column: "Név", availability_column: "Elérhetőség", restriction_column: "Korlátozások"}, inplace=True)
|
68 |
-
relevant_data.append(df)
|
69 |
|
70 |
# Összesített adatok
|
71 |
if relevant_data:
|
@@ -114,21 +114,6 @@ if uploaded_file:
|
|
114 |
st.write("Generált Ügyeleti Beosztás:")
|
115 |
st.dataframe(beosztas_df)
|
116 |
|
117 |
-
# Naptár nézet generálása Plotly segítségével
|
118 |
-
st.write("Naptár Nézet:")
|
119 |
-
beosztas_df["Nap"] = pd.to_datetime(beosztas_df["Nap"])
|
120 |
-
fig = px.timeline(
|
121 |
-
beosztas_df,
|
122 |
-
x_start="Nap",
|
123 |
-
x_end="Nap",
|
124 |
-
y="Orvos",
|
125 |
-
title="Ügyeleti Beosztás",
|
126 |
-
color="Orvos",
|
127 |
-
labels={"Nap": "Dátum", "Orvos": "Orvos"}
|
128 |
-
)
|
129 |
-
fig.update_yaxes(categoryorder="total ascending")
|
130 |
-
st.plotly_chart(fig)
|
131 |
-
|
132 |
# Exportálás
|
133 |
excel_data = convert_to_excel(beosztas_df)
|
134 |
st.download_button(
|
|
|
1 |
import streamlit as st
|
2 |
import pandas as pd
|
3 |
from transformers import pipeline
|
4 |
+
from datetime import datetime
|
|
|
5 |
|
6 |
# Oldal konfiguráció
|
7 |
st.set_page_config(page_title="Orvosi Ügyeleti Beosztás Generáló", layout="wide")
|
|
|
23 |
return datetime.strptime(value, "%d %B %Y")
|
24 |
parsed_date = datetime.strptime(value, "%d %B")
|
25 |
return parsed_date.replace(year=2025)
|
26 |
+
except (ValueError, TypeError):
|
27 |
return None
|
28 |
|
29 |
+
# Adatok tisztítása és egységesítése
|
30 |
+
def clean_data(df):
|
31 |
+
# Oszlopok egységesítése
|
32 |
+
df.columns = df.columns.str.strip().str.lower()
|
33 |
+
df = df.rename(columns={"név": "Név", "elérhetőség": "Elérhetőség", "korlátozások": "Korlátozások"})
|
34 |
+
return df
|
35 |
+
|
36 |
# Adatok Excel exportálása
|
37 |
@st.cache_data
|
38 |
def convert_to_excel(data):
|
|
|
58 |
relevant_data = []
|
59 |
for sheet in sheet_names:
|
60 |
df = excel_data.parse(sheet)
|
61 |
+
df = clean_data(df) # Adatok tisztítása és egységesítése
|
|
|
62 |
|
63 |
+
# Ellenőrzés, hogy tartalmaz-e releváns oszlopokat
|
64 |
+
if "Név" in df.columns and "Elérhetőség" in df.columns:
|
65 |
st.write(f"Releváns adat található a '{sheet}' munkalapon.")
|
66 |
relevant_data.append(df)
|
67 |
else:
|
68 |
+
st.warning(f"A '{sheet}' munkalap nem tartalmaz releváns adatokat.")
|
|
|
|
|
|
|
|
|
|
|
69 |
|
70 |
# Összesített adatok
|
71 |
if relevant_data:
|
|
|
114 |
st.write("Generált Ügyeleti Beosztás:")
|
115 |
st.dataframe(beosztas_df)
|
116 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
117 |
# Exportálás
|
118 |
excel_data = convert_to_excel(beosztas_df)
|
119 |
st.download_button(
|