Yerzhxn commited on
Commit
084c60c
·
verified ·
1 Parent(s): 3eee0c6

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +16 -8
app.py CHANGED
@@ -30,8 +30,12 @@ nkz_options = df_nkz['name'].unique().tolist()
30
  selected_nkz = st.selectbox("Выберите профессию по НКЗ", nkz_options)
31
 
32
  # Множественный выбор из колонки 'skills' из файла label_skills
33
- skills_options = sorted(df_skills[df_skills['NKZ'] == df_nkz[df_nkz['name'] == selected_nkz]['NKZ'].values[0]]['skills'].unique().tolist())
34
- selected_skills = st.multiselect("Выберите навыки", skills_options)
 
 
 
 
35
 
36
  # Выбор файла для поиска совпадений
37
  file_option = st.selectbox("Выберите тип", ("Вакансия", "Резюме"))
@@ -46,9 +50,12 @@ if add_entry:
46
  skills_ids = df_skills[df_skills['skills'].isin(selected_skills)]['id'].values
47
  skills_ids_str = ','.join(map(str, skills_ids))
48
  new_entry = pd.DataFrame({'name': [new_name], 'NKZ': [selected_nkz], 'skills': [' '.join(selected_skills)], 'arr': [skills_ids_str]})
49
- df_to_update = df_resume if write_option == "vacancy" else df_vacancy
50
- df_to_update = pd.concat([df_to_update, new_entry], ignore_index=True)
51
- df_to_update.to_excel(vacancy if write_option == "vacancy" else resume, index=False)
 
 
 
52
  st.success("Новая запись была успешно добавлена.")
53
  else:
54
  st.error("Пожалуйста, введите имя и выберите навыки для добавления записи.")
@@ -66,11 +73,12 @@ if st.button("Найти совпадения"):
66
  if 'arr' in row and isinstance(row['arr'], str):
67
  arr_values = set(map(int, row['arr'].split(',')))
68
  intersection = skills_ids.intersection(arr_values)
69
- if len(intersection) > len(selected_skills)/2:
 
70
  matching_results.append({
71
  'Name': row['name'],
72
  'Matching Skills Count': len(intersection),
73
- 'Matching Skills': intersection
74
  })
75
 
76
  # Вывод результатов
@@ -83,7 +91,7 @@ if st.button("Найти совпадения"):
83
  <h4 style="margin: 0;">{result['Name']}</h4>
84
  <p><strong>Количество совпадающих навыков:</strong> {result['Matching Skills Count']}</p>
85
  <p><strong>Совпадающие навыки:</strong><br>
86
- {'<br>'.join([f' {skill}' for skill in file_skills[file_skills['id']==int(result['Matching Skills'])].value[0]])}</p>
87
  </div>
88
  """,
89
  unsafe_allow_html=True
 
30
  selected_nkz = st.selectbox("Выберите профессию по НКЗ", nkz_options)
31
 
32
  # Множественный выбор из колонки 'skills' из файла label_skills
33
+ if selected_nkz:
34
+ nkz_code = df_nkz[df_nkz['name'] == selected_nkz]['NKZ'].values[0]
35
+ skills_options = sorted(df_skills[df_skills['NKZ'] == nkz_code]['skills'].unique().tolist())
36
+ selected_skills = st.multiselect("Выберите навыки", skills_options)
37
+ else:
38
+ selected_skills = []
39
 
40
  # Выбор файла для поиска совпадений
41
  file_option = st.selectbox("Выберите тип", ("Вакансия", "Резюме"))
 
50
  skills_ids = df_skills[df_skills['skills'].isin(selected_skills)]['id'].values
51
  skills_ids_str = ','.join(map(str, skills_ids))
52
  new_entry = pd.DataFrame({'name': [new_name], 'NKZ': [selected_nkz], 'skills': [' '.join(selected_skills)], 'arr': [skills_ids_str]})
53
+ if write_option == "vacancy":
54
+ df_vacancy = pd.concat([df_vacancy, new_entry], ignore_index=True)
55
+ df_vacancy.to_excel(vacancy, index=False)
56
+ else:
57
+ df_resume = pd.concat([df_resume, new_entry], ignore_index=True)
58
+ df_resume.to_excel(resume, index=False)
59
  st.success("Новая запись была успешно добавлена.")
60
  else:
61
  st.error("Пожалуйста, введите имя и выберите навыки для добавления записи.")
 
73
  if 'arr' in row and isinstance(row['arr'], str):
74
  arr_values = set(map(int, row['arr'].split(',')))
75
  intersection = skills_ids.intersection(arr_values)
76
+ if len(intersection) > len(selected_skills) / 2:
77
+ matching_skills = [df_skills[df_skills['id'] == skill_id]['skills'].values[0] for skill_id in intersection]
78
  matching_results.append({
79
  'Name': row['name'],
80
  'Matching Skills Count': len(intersection),
81
+ 'Matching Skills': matching_skills
82
  })
83
 
84
  # Вывод результатов
 
91
  <h4 style="margin: 0;">{result['Name']}</h4>
92
  <p><strong>Количество совпадающих навыков:</strong> {result['Matching Skills Count']}</p>
93
  <p><strong>Совпадающие навыки:</strong><br>
94
+ {'<br>'.join([f'\u2022 {skill}' for skill in result['Matching Skills']])}</p>
95
  </div>
96
  """,
97
  unsafe_allow_html=True