|
import pandas as pd |
|
import numpy as np |
|
import gradio as gr |
|
|
|
|
|
ihtiyac_df = pd.read_excel("ihtiyac_data.xlsx") |
|
fazla_df = pd.read_excel("norm_fazlasi.xlsx") |
|
|
|
|
|
ihtiyac_branş_ilce = ihtiyac_df.groupby(['branş', 'ilçe'])['ihtiyac'].sum() |
|
fazla_branş_ilce = fazla_df.groupby(['Branşı', 'İlçe Adı'])['Adı'].count() |
|
|
|
|
|
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}" |
|
|
|
|
|
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) |
|
|