AlihanAyverdi's picture
Update app.py
9b5621b verified
import pandas as pd
import numpy as np
import gradio as gr
# Veri setlerinin yüklenmesi
ihtiyac_df = pd.read_excel("ihtiyac_data.xlsx")
fazla_df = pd.read_excel("norm_fazlasi.xlsx")
# Branş ve ilçe bazında toplam ihtiyaç ve norm fazlası sayıları
ihtiyac_branş_ilce = ihtiyac_df.groupby(['branş', 'ilçe'])['ihtiyac'].sum()
fazla_branş_ilce = fazla_df.groupby(['Branşı', 'İlçe Adı'])['Adı'].count()
# Atanma ihtimallerini hesaplayan fonksiyon
def hesapla_atanma_ihtimali(branş, ilçe):
ihtiyac = ihtiyac_branş_ilce.get((branş, ilçe), 0)
norm_fazlasi = fazla_branş_ilce.get((branş, ilçe), 0)
toplam = ihtiyac - norm_fazlasi
if toplam > 0:
atanma_ihtimali = (ihtiyac / toplam) * 100
else:
atanma_ihtimali = 0
return f"{ilçe} ilçesine atanma ihtimaliniz: %{atanma_ihtimali:.2f}"
# Gradio arayüzü oluşturma
with gr.Blocks() as demo:
gr.Markdown("# Öğretmen Atanma İhtimalleri")
gr.Markdown("## Branşınıza ve İlçeye Göre Atanma İhtimalinizi Öğrenin")
branş_input = gr.Dropdown(label="Branşınızı Seçin", choices=ihtiyac_branş_ilce.index.levels[0].tolist())
ilce_input = gr.Dropdown(label="İlçeyi Seçin", choices=ihtiyac_branş_ilce.index.levels[1].tolist())
result = gr.Textbox(label="Atanma İhtimali Sonucu")
calculate_button = gr.Button("Hesapla")
calculate_button.click(fn=hesapla_atanma_ihtimali, inputs=[branş_input, ilce_input], outputs=result)
demo.launch(share=True)