MotoPanda commited on
Commit
d3ada5b
·
verified ·
1 Parent(s): 75ef83a

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +105 -0
app.py ADDED
@@ -0,0 +1,105 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import plotly.graph_objects as go
3
+ import pandas as pd
4
+ from data import *
5
+ from utils import *
6
+
7
+ # st.write('Калькулятор фин здоровья')
8
+
9
+ st.sidebar.title('Подбор параметров')
10
+ with st.sidebar:
11
+ banner_fz_alf = st.number_input(
12
+ "Введите охват аудитории с баннера/виджета ФЗ в АЛФ",
13
+ min_value=0, # Минимальное значение
14
+ step=1, # Шаг единицы
15
+ format='%d' # Формат для целых чисел
16
+ # ("IT", "Продажи")
17
+ )
18
+
19
+ banner_fz_vs = st.number_input(
20
+ "Введите охват аудитории с баннера/виджета ФЗ в Всего Средств",
21
+ min_value=0, # Минимальное значение
22
+ step=1, # Шаг единицы
23
+ format='%d' # Формат для целых чисел
24
+ # ("IT", "Продажи")
25
+ )
26
+ banner_fz_profile = st.number_input(
27
+ "Введите охват аудитории с баннера/виджета ФЗ в Профиле",
28
+ min_value=0, # Минимальное значение
29
+ step=1, # Шаг единицы
30
+ format='%d' # Формат для целых чисел
31
+ # ("IT", "Продажи")
32
+ )
33
+ banner_fz_all_serv = st.number_input(
34
+ "Введите охват аудитории с баннера/виджета ФЗ в разделе Все Сервисы",
35
+ min_value=0, # Минимальное значение
36
+ step=1, # Шаг единицы
37
+ format='%d' # Формат для целых чисел
38
+ # ("IT", "Продажи")
39
+ )
40
+
41
+ banner_fz_smart_search = st.number_input(
42
+ "Введите охват аудитории с Умного Поиска",
43
+ min_value=0, # Минимальное значение
44
+ step=1, # Шаг единицы
45
+ format='%d' # Формат для целых чисел
46
+ # ("IT", "Продажи")
47
+ )
48
+
49
+ # Выыеду таблицу с данными конверсий
50
+ st.title("Калькулятор Фин Здоровья")
51
+ st.write('Данный инструмент позволяет простроить прогноз на 1 месяц с конверсией, учитывая усредненные показатели предыдущих периодов')
52
+
53
+ df_with_conv = pd.DataFrame()
54
+ df_with_conv['Значение метрики'] = list_with_metrics
55
+ df_with_conv['Конверсия'] = [round(i*100, 2) for i in list_with_percent]
56
+ # list_with_parameters = ['']
57
+ # df_with_conv['Ожидаемый MAU'] = [None for i in range(len(df_with_conv))]
58
+
59
+
60
+
61
+ # for i in list_with_percent:
62
+ gez_fz_show = (banner_fz_alf*list_with_percent[4]+banner_fz_vs*list_with_percent[5]+banner_fz_profile*list_with_percent[6])*list_with_percent[7]
63
+
64
+
65
+
66
+ wait_mau = [banner_fz_alf,
67
+ banner_fz_vs,
68
+ banner_fz_profile,
69
+ banner_fz_alf*list_with_percent[4],
70
+ banner_fz_vs*list_with_percent[5],
71
+ banner_fz_profile*list_with_percent[6],
72
+ gez_fz_show,
73
+ gez_fz_show*list_with_percent[8],
74
+ gez_fz_show*list_with_percent[9],
75
+ gez_fz_show*list_with_percent[10],
76
+ gez_fz_show*list_with_percent[11],
77
+ gez_fz_show*list_with_percent[12],
78
+ gez_fz_show*list_with_percent[13],
79
+ gez_fz_show*list_with_percent[14],
80
+ gez_fz_show*list_with_percent[15],
81
+ gez_fz_show*list_with_percent[14]*list_with_percent[16],
82
+ gez_fz_show*list_with_percent[15]*list_with_percent[17],
83
+ gez_fz_show*list_with_percent[15]*list_with_percent[18],
84
+ gez_fz_show*list_with_percent[15]*list_with_percent[18]*list_with_percent[19],
85
+ ] + [0 for i in range(len(df_with_conv)-19)]
86
+
87
+ df_with_conv['Ожидаемый MAU'] = [round(i) for i in wait_mau]
88
+
89
+ st.dataframe(df_with_conv, width=1100, height=500)
90
+
91
+
92
+
93
+ # Заголовок приложения
94
+ st.subheader("Sankey-диаграмма за октябрь в Streamlit")
95
+
96
+ fig_1 = plot_sankey(data_1)
97
+
98
+ fig_2 = plot_sankey(data_2)
99
+ # Настройка макета
100
+ # fig.update_layout(title_text="Sankey-диаграмма за октябрь в Streamlit", font_size=10)
101
+
102
+ # Отображение диаграммы в Streamlit
103
+ st.plotly_chart(fig_1, use_container_width=True, height=1000)
104
+
105
+ st.plotly_chart(fig_2)