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)