krushna's picture
Upload 4 files
6d07b82 verified
import json
import pandas as pd
import mysql.connector
import gradio as gr
# Define your data loading and processing functions
def load_data():
data = json.load(open("all_job_skills.json"))
job_skills = pd.DataFrame()
for job in data.keys():
temp = pd.DataFrame(data[job].keys(), columns=['skill'])
temp['job'] = job
job_skills = pd.concat([job_skills, temp])
job_skills = job_skills[~job_skills['skill'].str.contains('opic')]
job_skills['Weightage'] = 0
return job_skills
def get_student_data(student_id):
mydb = mysql.connector.connect(
host="edwiselyproddb.crhg7zleeuhf.ap-south-1.rds.amazonaws.com",
user="usermanage",
password="7L6ZpWGgbbE9jiSv",
database = "edwisely_college"
)
sql = mydb.cursor(buffered=True)
query =f"""select sm.id, sm.name, ssqs.student_id, ssqs.avg_percentage_scored from subject_master sm
join student_subject_questionnaire_stats ssqs on ssqs.subject_master_id = sm.id where ssqs.student_id = {student_id};"""
sql.execute(query)
df_student = pd.DataFrame(sql.fetchall(), columns = sql.column_names )
sql.close()
mydb.close()
return df_student
def process_data(student_id):
final_score_df = pd.read_excel('all_subject_2_final_score.xlsx')
job_skills = load_data()
df_student = get_student_data(student_id)
for index, subject in df_student.iterrows():
skills_df = final_score_df[final_score_df['subject']==subject['name']]
skills_df['Weightage'] = skills_df['score'] * subject.avg_percentage_scored * 0.01
for index, row in skills_df.iterrows():
job_skills.loc[job_skills['skill'] == row.skill, 'Weightage'] += row.Weightage
result = job_skills.groupby('job')['Weightage'].sum().reset_index().sort_values('Weightage', ascending=False).iloc[:10, :]
return result
# Define Gradio interface
iface = gr.Interface(
fn=process_data, # The function to be executed
inputs=[
"number" # Student ID input
],
outputs="dataframe" # Display the result as a DataFrame
)
# Launch the Gradio interface
iface.launch(inline = False)