MotoPanda commited on
Commit
2e8c2f0
·
verified ·
1 Parent(s): fff6fbb

Update app.py

Browse files

добавление вакансий
фикс ошибки с доходом

Files changed (1) hide show
  1. app.py +32 -16
app.py CHANGED
@@ -21,19 +21,30 @@ i = 0
21
 
22
  with st.sidebar:
23
  sphere = st.selectbox(
24
- "Выбери сферу:", options = list(df1['Сфера'].unique()), key=i)
25
- # st.write("Выбрано:", sphere)
 
 
 
 
26
 
27
  # st.write(df.columns)
28
 
29
  dohod = st.number_input(
30
- "Введите уровень дохода", key=f"number_input_{i}"
 
 
 
 
31
  # ("IT", "Продажи")
32
  )
33
  st.write("Выбрано:", dohod)
34
 
35
  age = st.number_input(
36
- "Введите возраст"
 
 
 
37
  # ("IT", "Продажи")
38
  )
39
  st.write("Введено:", age)
@@ -90,13 +101,17 @@ with st.sidebar:
90
  list_skills.append('ритейл')
91
 
92
 
93
- def table(sphere: str, list_with_skills: list, dohod: int, sphere_change, gotov_uchitsia):
94
  new_df = pd.merge(df1, df2, on='Навыки', how='outer')
95
  if sphere_change == "Да":
96
  mask_sphere = new_df['Сфера'] != 0
97
  else:
98
  mask_sphere = new_df['Сфера'] == sphere
99
- new_df2 = new_df[new_df['ЗП в вакансии'] >= dohod][mask_sphere]
 
 
 
 
100
  new_df2['Есть_в_списке'] = new_df2['Навыки'].apply(lambda x: 1 if x in list_with_skills else 0)
101
  result = new_df2.groupby(['Профессия', 'Сфера', 'ЗП в вакансии']).agg(
102
  Skill=('Навыки', set),
@@ -109,22 +124,16 @@ def table(sphere: str, list_with_skills: list, dohod: int, sphere_change, gotov_
109
  def calculate_difference(row):
110
  cell_set = set(row['Skill']) # Преобразуем список в набор
111
  test_set = set(list_with_skills) # Преобразуем list_test в набор
112
- return list(cell_set - test_set)
 
113
 
114
  result['Недостающие навыки'] = result.apply(calculate_difference, axis=1)
115
  result['Требуемые навыки для позиции'] = result['Skill']
116
  result['Наименования доступных курсов'] = result['Cours']
117
  result['Ссылки на курс'] = result['Links']
118
 
119
- if gotov_uchitsia == "Нет":
120
- mask_ucheba = (result['On_list'] != {0}) & (result['On_list'] != {0, 1})
121
- else:
122
- mask_ucheba = result['On_list'] != {5}
123
 
124
- # try:
125
- result = result[mask_ucheba]
126
- # except:
127
- # result =result
128
 
129
  result2 = result[['Сфера', 'Профессия', 'ЗП в вакансии', 'Требуемые навыки для позиции', 'Недостающие навыки',
130
  'Наименования доступных курсов',
@@ -153,12 +162,19 @@ ax.set_ylabel('Сумма, руб')
153
  ax.set_title('Сравнение доходов')
154
  ax.grid(True) # Добавление сетки
155
 
 
156
  # Отображение графика
157
  st.pyplot(fig)
 
 
 
 
158
 
159
-
 
160
  df_fin_sort = df_fin.sort_values(by=['ЗП в вакансии'], ascending=[False]).reset_index(drop=True)
161
 
162
  st.header('Вакансии, которые вам будут интересны')
163
  st.dataframe(df_fin_sort, width=1100, height=500)
164
 
 
 
21
 
22
  with st.sidebar:
23
  sphere = st.selectbox(
24
+ "Выбери сферу:", options = list(df1['Сфера'].unique()), key=1)
25
+ st.write("Выбрано:", sphere)
26
+
27
+ job = st.selectbox(
28
+ "Выбери сферу:", options=list(df1['Профессия'].unique()), key=2)
29
+ st.write("Выбрано:", job)
30
 
31
  # st.write(df.columns)
32
 
33
  dohod = st.number_input(
34
+ "Введите уровень дохода",
35
+ min_value=0, # Минимальное значение
36
+ step=1, # Шаг единицы
37
+ format='%d', # Формат для целых чисел
38
+ max_value=(df1['ЗП в вакансии'].max() - 50000)
39
  # ("IT", "Продажи")
40
  )
41
  st.write("Выбрано:", dohod)
42
 
43
  age = st.number_input(
44
+ "Введите возраст",
45
+ min_value=0, # Минимальное значение
46
+ step=1, # Шаг единицы
47
+ format='%d' # Формат для целых чисел
48
  # ("IT", "Продажи")
49
  )
50
  st.write("Введено:", age)
 
101
  list_skills.append('ритейл')
102
 
103
 
104
+ def table(sphere: str, list_with_skills: list, dohod, sphere_change, gotov_uchitsia):
105
  new_df = pd.merge(df1, df2, on='Навыки', how='outer')
106
  if sphere_change == "Да":
107
  mask_sphere = new_df['Сфера'] != 0
108
  else:
109
  mask_sphere = new_df['Сфера'] == sphere
110
+ try:
111
+ new_df2 = new_df[new_df['ЗП в вакансии'] >= dohod][mask_sphere]
112
+ except:
113
+ new_df2 = new_df[mask_sphere][new_df['ЗП в вакансии'] >= (dohod - 50000)]
114
+
115
  new_df2['Есть_в_списке'] = new_df2['Навыки'].apply(lambda x: 1 if x in list_with_skills else 0)
116
  result = new_df2.groupby(['Профессия', 'Сфера', 'ЗП в вакансии']).agg(
117
  Skill=('Навыки', set),
 
124
  def calculate_difference(row):
125
  cell_set = set(row['Skill']) # Преобразуем список в набор
126
  test_set = set(list_with_skills) # Преобразуем list_test в набор
127
+ return (cell_set - test_set)
128
+
129
 
130
  result['Недостающие навыки'] = result.apply(calculate_difference, axis=1)
131
  result['Требуемые навыки для позиции'] = result['Skill']
132
  result['Наименования доступных курсов'] = result['Cours']
133
  result['Ссылки на курс'] = result['Links']
134
 
 
 
 
 
135
 
136
+
 
 
 
137
 
138
  result2 = result[['Сфера', 'Профессия', 'ЗП в вакансии', 'Требуемые навыки для позиции', 'Недостающие навыки',
139
  'Наименования доступных курсов',
 
162
  ax.set_title('Сравнение доходов')
163
  ax.grid(True) # Добавление сетки
164
 
165
+ count_course = 3
166
  # Отображение графика
167
  st.pyplot(fig)
168
+ if gotov_uchitsia == "Нет":
169
+ count_course = 0
170
+ else:
171
+ count_course = 3
172
 
173
+ mask_len = df_fin['Недостающие навыки'].apply(lambda x: len(x) <= count_course)
174
+ df_fin = df_fin[mask_len]
175
  df_fin_sort = df_fin.sort_values(by=['ЗП в вакансии'], ascending=[False]).reset_index(drop=True)
176
 
177
  st.header('Вакансии, которые вам будут интересны')
178
  st.dataframe(df_fin_sort, width=1100, height=500)
179
 
180
+