Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -8,17 +8,26 @@ st.title('Каталог профессий IT и Продажи')
|
|
8 |
|
9 |
st.sidebar.title('Выбор параметров для подбора вакансий')
|
10 |
|
11 |
-
with open('
|
12 |
data_main = json.load(json_file)
|
13 |
-
|
14 |
|
15 |
-
|
16 |
-
|
17 |
-
df2= pd.DataFrame(data_dop)
|
18 |
|
19 |
|
20 |
-
|
21 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
22 |
|
23 |
dohod = 0
|
24 |
i = 0
|
@@ -29,7 +38,7 @@ with st.sidebar:
|
|
29 |
st.write("Выбрано:", sphere)
|
30 |
|
31 |
job = st.selectbox(
|
32 |
-
"Выбери
|
33 |
st.write("Выбрано:", job)
|
34 |
|
35 |
# st.write(df.columns)
|
@@ -74,7 +83,7 @@ with st.sidebar:
|
|
74 |
st.header('Выберите навыки, которые у Вас есть')
|
75 |
|
76 |
list_skills = []
|
77 |
-
for i in sorted(set(df1['
|
78 |
skill = st.checkbox(i, key=f"{i}")
|
79 |
if skill:
|
80 |
list_skills.append(i)
|
@@ -114,15 +123,15 @@ with st.sidebar:
|
|
114 |
|
115 |
|
116 |
def table(sphere: str, list_with_skills: list, dohod, sphere_change, gotov_uchitsia):
|
117 |
-
new_df = pd.merge(df1, df2, on='
|
118 |
new_df2 = new_df
|
119 |
|
120 |
|
121 |
-
new_df2['Есть_в_списке'] = new_df2['
|
122 |
-
result = new_df2.groupby(['
|
123 |
-
Skill=('
|
124 |
-
Cours=('
|
125 |
-
Links=('
|
126 |
On_list=('Есть_в_списке', set)
|
127 |
).reset_index()
|
128 |
|
@@ -141,7 +150,7 @@ def table(sphere: str, list_with_skills: list, dohod, sphere_change, gotov_uchit
|
|
141 |
|
142 |
|
143 |
|
144 |
-
result2 = result[['Сфера', '
|
145 |
'Наименования доступных курсов',
|
146 |
'Ссылки на курс']]
|
147 |
return result2
|
@@ -187,9 +196,8 @@ else:
|
|
187 |
|
188 |
|
189 |
mask_len = df_fin['Недостающие навыки'].apply(lambda x: len(x) <= count_course)
|
190 |
-
df_fin = df_fin[mask_len][mask_sphere][df_fin['
|
191 |
-
df_fin_sort = df_fin.sort_values(by=['
|
192 |
|
193 |
st.header('Вакансии, которые вам будут интересны')
|
194 |
st.dataframe(df_fin_sort, width=1100, height=500)
|
195 |
-
|
|
|
8 |
|
9 |
st.sidebar.title('Выбор параметров для подбора вакансий')
|
10 |
|
11 |
+
with open('catalog.json', 'r') as json_file:
|
12 |
data_main = json.load(json_file)
|
13 |
+
df3 = pd.DataFrame(data_main)
|
14 |
|
15 |
+
df1 = df3[['Сфера', 'Компания', 'Должность', 'Зарплата (руб.)', 'Необходимые навыки']]
|
16 |
+
df2 = df3[['Должность', 'Необходимые навыки', 'Подходящие курсы Нетологии', 'Ссылки']]
|
|
|
17 |
|
18 |
|
19 |
+
#
|
20 |
+
# with open('main_table.json', 'r') as json_file:
|
21 |
+
# data_main = json.load(json_file)
|
22 |
+
# df1 = pd.DataFrame(data_main)
|
23 |
+
#
|
24 |
+
# with open('dop_table.json', 'r') as json_file:
|
25 |
+
# data_dop = json.load(json_file)
|
26 |
+
# df2= pd.DataFrame(data_dop)
|
27 |
+
|
28 |
+
|
29 |
+
df1['Необходимые навыки'] = [i.lower().replace('.', '').replace('-', '') for i in df1['Необходимые навыки']]
|
30 |
+
df2['Необходимые навыки'] = [i.lower().replace('.', '').replace('-', '') for i in df2['Необходимые навыки']]
|
31 |
|
32 |
dohod = 0
|
33 |
i = 0
|
|
|
38 |
st.write("Выбрано:", sphere)
|
39 |
|
40 |
job = st.selectbox(
|
41 |
+
"Выбери сферу:", options=list(df1['Должность'].unique()), key=2)
|
42 |
st.write("Выбрано:", job)
|
43 |
|
44 |
# st.write(df.columns)
|
|
|
83 |
st.header('Выберите навыки, которые у Вас есть')
|
84 |
|
85 |
list_skills = []
|
86 |
+
for i in sorted(set(df1['Необходимые навыки'])):
|
87 |
skill = st.checkbox(i, key=f"{i}")
|
88 |
if skill:
|
89 |
list_skills.append(i)
|
|
|
123 |
|
124 |
|
125 |
def table(sphere: str, list_with_skills: list, dohod, sphere_change, gotov_uchitsia):
|
126 |
+
new_df = pd.merge(df1, df2, on=['Необходимые навыки', 'Должность'], how='outer')
|
127 |
new_df2 = new_df
|
128 |
|
129 |
|
130 |
+
new_df2['Есть_в_списке'] = new_df2['Необходимые навыки'].apply(lambda x: 1 if x in list_with_skills else 0)
|
131 |
+
result = new_df2.groupby(['Должность', 'Сфера', 'Зарплата (руб.)']).agg(
|
132 |
+
Skill=('Необходимые навыки', set),
|
133 |
+
Cours=('Подходящие курсы Нетологии', set),
|
134 |
+
Links=('Ссылки', set),
|
135 |
On_list=('Есть_в_списке', set)
|
136 |
).reset_index()
|
137 |
|
|
|
150 |
|
151 |
|
152 |
|
153 |
+
result2 = result[['Сфера', 'Должность', 'Зарплата (руб.)', 'Требуемые навыки для позиции', 'Недостающие навыки',
|
154 |
'Наименования доступных курсов',
|
155 |
'Ссылки на курс']]
|
156 |
return result2
|
|
|
196 |
|
197 |
|
198 |
mask_len = df_fin['Недостающие навыки'].apply(lambda x: len(x) <= count_course)
|
199 |
+
df_fin = df_fin[mask_len][mask_sphere][df_fin['Зарплата (руб.)'] >= dohod]
|
200 |
+
df_fin_sort = df_fin.sort_values(by=['Зарплата (руб.)'], ascending=[False]).reset_index(drop=True)
|
201 |
|
202 |
st.header('Вакансии, которые вам будут интересны')
|
203 |
st.dataframe(df_fin_sort, width=1100, height=500)
|
|