Update app.py
Browse files
app.py
CHANGED
|
@@ -69,7 +69,7 @@ def criar_grafico_dispersao(df, x_column, y_column, hover_name, trendline_color)
|
|
| 69 |
#margin=dict(l=0.1, r=1, t=0.1, b=0.1)
|
| 70 |
)
|
| 71 |
# Definindo a cor dos pontos
|
| 72 |
-
fig.update_traces(marker=dict(color=trendline_color, size=
|
| 73 |
# Definindo a cor da linha de tendência
|
| 74 |
fig.update_traces(line=dict(color="black"))
|
| 75 |
# Adicionando o texto com a correlação na linha de tendência
|
|
@@ -98,57 +98,67 @@ def avaliacao_imovel(planilha, v_d, scv_d,
|
|
| 98 |
|
| 99 |
# Carregando os dados
|
| 100 |
df_dados = pd.read_excel(planilha.name)
|
|
|
|
| 101 |
df_original = df_dados.copy()
|
| 102 |
|
| 103 |
# ---------------------------Nome das variáveis--------------------------#
|
| 104 |
|
| 105 |
-
# Obtenha os nomes das colunas, excluindo a primeira
|
| 106 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 107 |
# Crie a lista de strings com os cabeçalhos formatados
|
| 108 |
-
|
| 109 |
-
colunas = [f'Var dependente = **{nomes_colunas[0]}**'] + [f'Var {i} = **{coluna}**' for i, coluna in enumerate(nomes_colunas[1:], start=1)]
|
| 110 |
-
|
| 111 |
|
| 112 |
#-----------------------------------Escalas------------------------------#
|
| 113 |
# dados
|
| 114 |
-
|
| 115 |
-
|
| 116 |
-
|
| 117 |
-
|
| 118 |
-
aplicar_operacao(df_dados,
|
| 119 |
-
aplicar_operacao(df_dados,
|
| 120 |
-
aplicar_operacao(df_dados,
|
| 121 |
-
aplicar_operacao(df_dados,
|
| 122 |
-
aplicar_operacao(df_dados,
|
| 123 |
-
aplicar_operacao(df_dados,
|
| 124 |
-
aplicar_operacao(df_dados,
|
| 125 |
-
aplicar_operacao(df_dados,
|
| 126 |
-
aplicar_operacao(df_dados,
|
| 127 |
-
aplicar_operacao(df_dados,
|
| 128 |
-
aplicar_operacao(df_dados,
|
| 129 |
-
aplicar_operacao(df_dados,
|
| 130 |
-
aplicar_operacao(df_dados,
|
|
|
|
|
|
|
|
|
|
| 131 |
|
| 132 |
#----------------------------Renomear colunas----------------------------#
|
| 133 |
|
| 134 |
#dados
|
| 135 |
-
|
| 136 |
-
|
| 137 |
-
|
| 138 |
-
|
| 139 |
-
renomeia_colunas(df_dados,
|
| 140 |
-
renomeia_colunas(df_dados,
|
| 141 |
-
renomeia_colunas(df_dados,
|
| 142 |
-
renomeia_colunas(df_dados,
|
| 143 |
-
renomeia_colunas(df_dados,
|
| 144 |
-
renomeia_colunas(df_dados,
|
| 145 |
-
renomeia_colunas(df_dados,
|
| 146 |
-
renomeia_colunas(df_dados,
|
| 147 |
-
renomeia_colunas(df_dados,
|
| 148 |
-
renomeia_colunas(df_dados,
|
| 149 |
-
renomeia_colunas(df_dados,
|
| 150 |
-
renomeia_colunas(df_dados,
|
| 151 |
-
renomeia_colunas(df_dados,
|
|
|
|
|
|
|
|
|
|
| 152 |
|
| 153 |
#----------------Manipulação das linhas (dados / outiliers----------------#
|
| 154 |
|
|
@@ -169,22 +179,22 @@ def avaliacao_imovel(planilha, v_d, scv_d,
|
|
| 169 |
# Iterar sobre as colunas do DataFrame df_filtrado
|
| 170 |
for i, col in enumerate(df_filtrado.columns):
|
| 171 |
# Verificar se a coluna atual deve ser adicionada com base na condição e se ela existe no DataFrame
|
| 172 |
-
if (i ==
|
| 173 |
-
(i ==
|
| 174 |
-
(i ==
|
| 175 |
-
(i ==
|
| 176 |
-
(i ==
|
| 177 |
-
(i ==
|
| 178 |
-
(i ==
|
| 179 |
-
(i ==
|
| 180 |
-
(i ==
|
| 181 |
-
(i ==
|
| 182 |
-
(i ==
|
| 183 |
-
(i ==
|
| 184 |
-
(i ==
|
| 185 |
-
(i ==
|
| 186 |
-
(i ==
|
| 187 |
-
(i ==
|
| 188 |
if i < len(df_filtrado.columns):
|
| 189 |
X[col] = df_filtrado.iloc[:, i]
|
| 190 |
|
|
@@ -208,42 +218,45 @@ def avaliacao_imovel(planilha, v_d, scv_d,
|
|
| 208 |
fig_v16 = None
|
| 209 |
|
| 210 |
if v_1:
|
| 211 |
-
fig_v1 = criar_grafico_dispersao(df_filtrado, df_filtrado.columns[
|
| 212 |
if v_2:
|
| 213 |
-
fig_v2 = criar_grafico_dispersao(df_filtrado, df_filtrado.columns[
|
| 214 |
if v_3:
|
| 215 |
-
fig_v3 = criar_grafico_dispersao(df_filtrado, df_filtrado.columns[
|
| 216 |
if v_4:
|
| 217 |
-
fig_v4 = criar_grafico_dispersao(df_filtrado, df_filtrado.columns[
|
| 218 |
if v_5:
|
| 219 |
-
fig_v5 = criar_grafico_dispersao(df_filtrado, df_filtrado.columns[
|
| 220 |
if v_6:
|
| 221 |
-
fig_v6 = criar_grafico_dispersao(df_filtrado, df_filtrado.columns[
|
| 222 |
if v_7:
|
| 223 |
-
fig_v7 = criar_grafico_dispersao(df_filtrado, df_filtrado.columns[
|
| 224 |
if v_8:
|
| 225 |
-
fig_v8 = criar_grafico_dispersao(df_filtrado, df_filtrado.columns[
|
| 226 |
if v_9:
|
| 227 |
-
fig_v9 = criar_grafico_dispersao(df_filtrado, df_filtrado.columns[
|
| 228 |
if v_10:
|
| 229 |
-
fig_v10 = criar_grafico_dispersao(df_filtrado, df_filtrado.columns[
|
| 230 |
if v_11:
|
| 231 |
-
fig_v11 = criar_grafico_dispersao(df_filtrado, df_filtrado.columns[
|
| 232 |
if v_12:
|
| 233 |
-
fig_v12 = criar_grafico_dispersao(df_filtrado, df_filtrado.columns[
|
| 234 |
if v_13:
|
| 235 |
-
fig_v13 = criar_grafico_dispersao(df_filtrado, df_filtrado.columns[
|
| 236 |
if v_14:
|
| 237 |
-
fig_v14 = criar_grafico_dispersao(df_filtrado, df_filtrado.columns[
|
| 238 |
if v_15:
|
| 239 |
-
fig_v15 = criar_grafico_dispersao(df_filtrado, df_filtrado.columns[
|
| 240 |
if v_16:
|
| 241 |
-
fig_v16 = criar_grafico_dispersao(df_filtrado, df_filtrado.columns[
|
| 242 |
|
| 243 |
#--------------------------Regressão Linerar------------------------------#
|
| 244 |
|
| 245 |
# Variável dependente
|
| 246 |
-
|
|
|
|
|
|
|
|
|
|
| 247 |
|
| 248 |
# Adicionando uma constante às variáveis independentes (intercepto)
|
| 249 |
X = sm.add_constant(X)
|
|
@@ -303,7 +316,10 @@ def avaliacao_imovel(planilha, v_d, scv_d,
|
|
| 303 |
"""
|
| 304 |
|
| 305 |
# Equação do modelo
|
| 306 |
-
|
|
|
|
|
|
|
|
|
|
| 307 |
|
| 308 |
# Iterar sobre os coeficientes estimados
|
| 309 |
for nome_coluna, coeficiente in zip(X.columns, coeficientes):
|
|
@@ -354,8 +370,13 @@ def avaliacao_imovel(planilha, v_d, scv_d,
|
|
| 354 |
# Adicionando os valores previstos como uma nova coluna ao df_final
|
| 355 |
df_final['Valores Ajustados'] = round(valores_previstos, 8)
|
| 356 |
# Criando uma dataframe para os Valores Ajustados x Preços Observados
|
| 357 |
-
|
| 358 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 359 |
df_correl_grafico = df_correl.copy()
|
| 360 |
# Desfazendo a conversão da escala
|
| 361 |
if scv_d == 'lny':
|
|
@@ -380,46 +401,48 @@ def avaliacao_imovel(planilha, v_d, scv_d,
|
|
| 380 |
df_aval_original = df_aval.copy()
|
| 381 |
|
| 382 |
# avaliando(s)
|
| 383 |
-
|
| 384 |
-
|
| 385 |
-
|
| 386 |
-
|
| 387 |
-
aplicar_operacao(df_aval,
|
| 388 |
-
aplicar_operacao(df_aval,
|
| 389 |
-
aplicar_operacao(df_aval,
|
| 390 |
-
aplicar_operacao(df_aval,
|
| 391 |
-
aplicar_operacao(df_aval,
|
| 392 |
-
aplicar_operacao(df_aval,
|
| 393 |
-
aplicar_operacao(df_aval,
|
| 394 |
-
aplicar_operacao(df_aval,
|
| 395 |
-
aplicar_operacao(df_aval,
|
| 396 |
-
aplicar_operacao(df_aval,
|
| 397 |
-
aplicar_operacao(df_aval,
|
| 398 |
-
aplicar_operacao(df_aval,
|
| 399 |
-
aplicar_operacao(df_aval,
|
| 400 |
-
|
|
|
|
|
|
|
| 401 |
|
| 402 |
X_aval = pd.DataFrame()
|
| 403 |
|
| 404 |
# Iterar sobre as colunas do DataFrame df_filtrado
|
| 405 |
for i, col in enumerate(df_aval.columns):
|
| 406 |
# Verificar se a coluna atual deve ser adicionada com base na condição e se ela existe no DataFrame
|
| 407 |
-
if (i ==
|
| 408 |
-
(i ==
|
| 409 |
-
(i ==
|
| 410 |
-
(i ==
|
| 411 |
-
(i ==
|
| 412 |
-
(i ==
|
| 413 |
-
(i ==
|
| 414 |
-
(i ==
|
| 415 |
-
(i ==
|
| 416 |
-
(i ==
|
| 417 |
-
(i ==
|
| 418 |
-
(i ==
|
| 419 |
-
(i ==
|
| 420 |
-
(i ==
|
| 421 |
-
(i ==
|
| 422 |
-
(i ==
|
| 423 |
if i < len(df_aval.columns):
|
| 424 |
X_aval[col] = df_aval.iloc[:, i]
|
| 425 |
|
|
@@ -566,8 +589,8 @@ def avaliacao_imovel(planilha, v_d, scv_d,
|
|
| 566 |
df_original,
|
| 567 |
colunas,
|
| 568 |
resultados_gerais,
|
| 569 |
-
resultado_html,
|
| 570 |
equacao_modelo,
|
|
|
|
| 571 |
df_final,
|
| 572 |
Listagem_df_maiores_que_2,
|
| 573 |
pontos_influentes,
|
|
@@ -595,6 +618,7 @@ def avaliacao_imovel(planilha, v_d, scv_d,
|
|
| 595 |
'planilha_aval.xlsx',
|
| 596 |
#X_aval,
|
| 597 |
#X,
|
|
|
|
| 598 |
)
|
| 599 |
|
| 600 |
#--------------------------------------Interface---------------------------------#
|
|
@@ -670,8 +694,8 @@ with gr.Blocks(theme=gr.themes.Default(primary_hue="yellow", secondary_hue="yell
|
|
| 670 |
cols = gr.Textbox(label="Colunas", scale=1)
|
| 671 |
with gr.Row():
|
| 672 |
tx_1 = gr.Textbox(label="Resultados Gerais do Modelo", scale=1)
|
| 673 |
-
|
| 674 |
-
|
| 675 |
df_2 = gr.Dataframe(label="Planilha Regressão Linear (Variáveis e escalas escolhidas e sem outliers)", height=300)
|
| 676 |
tx_3 = gr.Textbox(label="Listagem de dados com resíduos padronizados > 2")
|
| 677 |
tx_5 = gr.Textbox(label="Listagem de pontos Influenciantes (Distância de Cook > 1)")
|
|
@@ -700,12 +724,13 @@ with gr.Blocks(theme=gr.themes.Default(primary_hue="yellow", secondary_hue="yell
|
|
| 700 |
fl_2 = gr.components.File(label="Resultado da Avaliação")
|
| 701 |
#df_7 = gr.Dataframe(label="X_avall", height=300)
|
| 702 |
#df_8 = gr.Dataframe(label="X", height=300)
|
|
|
|
| 703 |
|
| 704 |
inputs = [fl_1, drop, rd_0, cb_1, rd_1, cb_2, rd_2, cb_3, rd_3, cb_4, rd_4, cb_5, rd_5, cb_6, rd_6,
|
| 705 |
cb_7, rd_7, cb_8, rd_8, cb_9, rd_9, cb_10, rd_10, cb_11, rd_11, cb_12, rd_12, cb_13, rd_13,
|
| 706 |
cb_14, rd_14, cb_15, rd_15, cb_16, rd_16, cb_17]
|
| 707 |
-
outputs = [df_1, cols, tx_1,
|
| 708 |
-
pt_7, pt_8, pt_9, pt_10, pt_11, pt_12, pt_13, pt_14, pt_15, pt_16, pt_17, df_6, fl_2] #, df_7, df_8
|
| 709 |
|
| 710 |
button_1.click(avaliacao_imovel, inputs=inputs, outputs=outputs)
|
| 711 |
button_2.click(avaliacao_imovel, inputs=inputs, outputs=outputs)
|
|
|
|
| 69 |
#margin=dict(l=0.1, r=1, t=0.1, b=0.1)
|
| 70 |
)
|
| 71 |
# Definindo a cor dos pontos
|
| 72 |
+
fig.update_traces(marker=dict(color=trendline_color, size=5))
|
| 73 |
# Definindo a cor da linha de tendência
|
| 74 |
fig.update_traces(line=dict(color="black"))
|
| 75 |
# Adicionando o texto com a correlação na linha de tendência
|
|
|
|
| 98 |
|
| 99 |
# Carregando os dados
|
| 100 |
df_dados = pd.read_excel(planilha.name)
|
| 101 |
+
df_dados = df_dados.round(4)
|
| 102 |
df_original = df_dados.copy()
|
| 103 |
|
| 104 |
# ---------------------------Nome das variáveis--------------------------#
|
| 105 |
|
| 106 |
+
# Obtenha os nomes das colunas, excluindo a primeira ou a segunda
|
| 107 |
+
|
| 108 |
+
if v_d == "Valor total":
|
| 109 |
+
nomes_colunas = df_original.drop(columns=[df_original.columns[0], df_original.columns[2]]).columns
|
| 110 |
+
else:
|
| 111 |
+
nomes_colunas = df_original.drop(columns=[df_original.columns[0], df_original.columns[1]]).columns
|
| 112 |
+
|
| 113 |
# Crie a lista de strings com os cabeçalhos formatados
|
| 114 |
+
colunas = [f'Var dependente = {nomes_colunas[0]}'] + [f'Var {i} = {coluna}' for i, coluna in enumerate(nomes_colunas[1:], start=1)]
|
|
|
|
|
|
|
| 115 |
|
| 116 |
#-----------------------------------Escalas------------------------------#
|
| 117 |
# dados
|
| 118 |
+
if v_d == "Valor total":
|
| 119 |
+
aplicar_operacao(df_dados, scv_d, 1)
|
| 120 |
+
else:
|
| 121 |
+
aplicar_operacao(df_dados, scv_d, 2)
|
| 122 |
+
aplicar_operacao(df_dados, scv_1, 3)
|
| 123 |
+
aplicar_operacao(df_dados, scv_2, 4)
|
| 124 |
+
aplicar_operacao(df_dados, scv_3, 5)
|
| 125 |
+
aplicar_operacao(df_dados, scv_4, 6)
|
| 126 |
+
aplicar_operacao(df_dados, scv_5, 7)
|
| 127 |
+
aplicar_operacao(df_dados, scv_6, 8)
|
| 128 |
+
aplicar_operacao(df_dados, scv_7, 9)
|
| 129 |
+
aplicar_operacao(df_dados, scv_8, 10)
|
| 130 |
+
aplicar_operacao(df_dados, scv_9, 11)
|
| 131 |
+
aplicar_operacao(df_dados, scv_10, 12)
|
| 132 |
+
aplicar_operacao(df_dados, scv_11, 13)
|
| 133 |
+
aplicar_operacao(df_dados, scv_12, 14)
|
| 134 |
+
aplicar_operacao(df_dados, scv_13, 15)
|
| 135 |
+
aplicar_operacao(df_dados, scv_14, 16)
|
| 136 |
+
aplicar_operacao(df_dados, scv_15, 17)
|
| 137 |
+
aplicar_operacao(df_dados, scv_16, 18)
|
| 138 |
|
| 139 |
#----------------------------Renomear colunas----------------------------#
|
| 140 |
|
| 141 |
#dados
|
| 142 |
+
if v_d == "Valor total":
|
| 143 |
+
renomeia_colunas(df_dados, 1, scv_d)
|
| 144 |
+
else:
|
| 145 |
+
renomeia_colunas(df_dados, 2, scv_d)
|
| 146 |
+
renomeia_colunas(df_dados, 3, scv_1)
|
| 147 |
+
renomeia_colunas(df_dados, 4, scv_2)
|
| 148 |
+
renomeia_colunas(df_dados, 5, scv_3)
|
| 149 |
+
renomeia_colunas(df_dados, 6, scv_4)
|
| 150 |
+
renomeia_colunas(df_dados, 7, scv_5)
|
| 151 |
+
renomeia_colunas(df_dados, 8, scv_6)
|
| 152 |
+
renomeia_colunas(df_dados, 9, scv_7)
|
| 153 |
+
renomeia_colunas(df_dados, 10, scv_8)
|
| 154 |
+
renomeia_colunas(df_dados, 11, scv_9)
|
| 155 |
+
renomeia_colunas(df_dados, 12, scv_10)
|
| 156 |
+
renomeia_colunas(df_dados, 13, scv_11)
|
| 157 |
+
renomeia_colunas(df_dados, 14, scv_12)
|
| 158 |
+
renomeia_colunas(df_dados, 15, scv_13)
|
| 159 |
+
renomeia_colunas(df_dados, 16, scv_14)
|
| 160 |
+
renomeia_colunas(df_dados, 17, scv_15)
|
| 161 |
+
renomeia_colunas(df_dados, 18, scv_16)
|
| 162 |
|
| 163 |
#----------------Manipulação das linhas (dados / outiliers----------------#
|
| 164 |
|
|
|
|
| 179 |
# Iterar sobre as colunas do DataFrame df_filtrado
|
| 180 |
for i, col in enumerate(df_filtrado.columns):
|
| 181 |
# Verificar se a coluna atual deve ser adicionada com base na condição e se ela existe no DataFrame
|
| 182 |
+
if (i == 3 and v_1) or \
|
| 183 |
+
(i == 4 and v_2) or \
|
| 184 |
+
(i == 5 and v_3) or \
|
| 185 |
+
(i == 6 and v_4) or \
|
| 186 |
+
(i == 7 and v_5) or \
|
| 187 |
+
(i == 8 and v_6) or \
|
| 188 |
+
(i == 9 and v_7) or \
|
| 189 |
+
(i == 10 and v_8) or \
|
| 190 |
+
(i == 11 and v_9) or \
|
| 191 |
+
(i == 12 and v_10) or \
|
| 192 |
+
(i == 13 and v_11) or \
|
| 193 |
+
(i == 14 and v_12) or \
|
| 194 |
+
(i == 15 and v_13) or \
|
| 195 |
+
(i == 16 and v_14) or \
|
| 196 |
+
(i == 17 and v_15) or \
|
| 197 |
+
(i == 18 and v_16):
|
| 198 |
if i < len(df_filtrado.columns):
|
| 199 |
X[col] = df_filtrado.iloc[:, i]
|
| 200 |
|
|
|
|
| 218 |
fig_v16 = None
|
| 219 |
|
| 220 |
if v_1:
|
| 221 |
+
fig_v1 = criar_grafico_dispersao(df_filtrado, df_filtrado.columns[3], df_filtrado.columns[1], df_filtrado.columns[0], "orange")
|
| 222 |
if v_2:
|
| 223 |
+
fig_v2 = criar_grafico_dispersao(df_filtrado, df_filtrado.columns[4], df_filtrado.columns[1], df_filtrado.columns[0], "orange")
|
| 224 |
if v_3:
|
| 225 |
+
fig_v3 = criar_grafico_dispersao(df_filtrado, df_filtrado.columns[5], df_filtrado.columns[1], df_filtrado.columns[0], "orange")
|
| 226 |
if v_4:
|
| 227 |
+
fig_v4 = criar_grafico_dispersao(df_filtrado, df_filtrado.columns[6], df_filtrado.columns[1], df_filtrado.columns[0], "orange")
|
| 228 |
if v_5:
|
| 229 |
+
fig_v5 = criar_grafico_dispersao(df_filtrado, df_filtrado.columns[7], df_filtrado.columns[1], df_filtrado.columns[0], "orange")
|
| 230 |
if v_6:
|
| 231 |
+
fig_v6 = criar_grafico_dispersao(df_filtrado, df_filtrado.columns[8], df_filtrado.columns[1], df_filtrado.columns[0], "orange")
|
| 232 |
if v_7:
|
| 233 |
+
fig_v7 = criar_grafico_dispersao(df_filtrado, df_filtrado.columns[9], df_filtrado.columns[1], df_filtrado.columns[0], "orange")
|
| 234 |
if v_8:
|
| 235 |
+
fig_v8 = criar_grafico_dispersao(df_filtrado, df_filtrado.columns[10], df_filtrado.columns[1], df_filtrado.columns[0], "orange")
|
| 236 |
if v_9:
|
| 237 |
+
fig_v9 = criar_grafico_dispersao(df_filtrado, df_filtrado.columns[11], df_filtrado.columns[1], df_filtrado.columns[0], "orange")
|
| 238 |
if v_10:
|
| 239 |
+
fig_v10 = criar_grafico_dispersao(df_filtrado, df_filtrado.columns[12], df_filtrado.columns[1], df_filtrado.columns[0], "orange")
|
| 240 |
if v_11:
|
| 241 |
+
fig_v11 = criar_grafico_dispersao(df_filtrado, df_filtrado.columns[13], df_filtrado.columns[1], df_filtrado.columns[0], "orange")
|
| 242 |
if v_12:
|
| 243 |
+
fig_v12 = criar_grafico_dispersao(df_filtrado, df_filtrado.columns[14], df_filtrado.columns[1], df_filtrado.columns[0], "orange")
|
| 244 |
if v_13:
|
| 245 |
+
fig_v13 = criar_grafico_dispersao(df_filtrado, df_filtrado.columns[15], df_filtrado.columns[1], df_filtrado.columns[0], "orange")
|
| 246 |
if v_14:
|
| 247 |
+
fig_v14 = criar_grafico_dispersao(df_filtrado, df_filtrado.columns[16], df_filtrado.columns[1], df_filtrado.columns[0], "orange")
|
| 248 |
if v_15:
|
| 249 |
+
fig_v15 = criar_grafico_dispersao(df_filtrado, df_filtrado.columns[17], df_filtrado.columns[1], df_filtrado.columns[0], "orange")
|
| 250 |
if v_16:
|
| 251 |
+
fig_v16 = criar_grafico_dispersao(df_filtrado, df_filtrado.columns[18], df_filtrado.columns[1], df_filtrado.columns[0], "orange")
|
| 252 |
|
| 253 |
#--------------------------Regressão Linerar------------------------------#
|
| 254 |
|
| 255 |
# Variável dependente
|
| 256 |
+
if v_d == "Valor total":
|
| 257 |
+
y = df_filtrado.iloc[:, 1:2]
|
| 258 |
+
else:
|
| 259 |
+
y = df_filtrado.iloc[:, 2:3]
|
| 260 |
|
| 261 |
# Adicionando uma constante às variáveis independentes (intercepto)
|
| 262 |
X = sm.add_constant(X)
|
|
|
|
| 316 |
"""
|
| 317 |
|
| 318 |
# Equação do modelo
|
| 319 |
+
if v_d == "Valor total":
|
| 320 |
+
equacao_modelo = df_filtrado.columns[1] + '='
|
| 321 |
+
else:
|
| 322 |
+
equacao_modelo = df_filtrado.columns[2] + '='
|
| 323 |
|
| 324 |
# Iterar sobre os coeficientes estimados
|
| 325 |
for nome_coluna, coeficiente in zip(X.columns, coeficientes):
|
|
|
|
| 370 |
# Adicionando os valores previstos como uma nova coluna ao df_final
|
| 371 |
df_final['Valores Ajustados'] = round(valores_previstos, 8)
|
| 372 |
# Criando uma dataframe para os Valores Ajustados x Preços Observados
|
| 373 |
+
if v_d == "Valor total":
|
| 374 |
+
df_correl = df_final[[df_filtrado.columns[0], df_filtrado.columns[1], 'Valores Ajustados']]
|
| 375 |
+
df_correl = df_correl.rename(columns={df_filtrado.columns[1]: 'Preços Observados'})
|
| 376 |
+
else:
|
| 377 |
+
df_correl = df_final[[df_filtrado.columns[0], df_filtrado.columns[2], 'Valores Ajustados']]
|
| 378 |
+
df_correl = df_correl.rename(columns={df_filtrado.columns[2]: 'Preços Observados'})
|
| 379 |
+
|
| 380 |
df_correl_grafico = df_correl.copy()
|
| 381 |
# Desfazendo a conversão da escala
|
| 382 |
if scv_d == 'lny':
|
|
|
|
| 401 |
df_aval_original = df_aval.copy()
|
| 402 |
|
| 403 |
# avaliando(s)
|
| 404 |
+
if v_d == "Valor total":
|
| 405 |
+
aplicar_operacao(df_aval, scv_d, 1)
|
| 406 |
+
else:
|
| 407 |
+
aplicar_operacao(df_aval, scv_d, 2)
|
| 408 |
+
aplicar_operacao(df_aval, scv_1, 3)
|
| 409 |
+
aplicar_operacao(df_aval, scv_2, 4)
|
| 410 |
+
aplicar_operacao(df_aval, scv_3, 5)
|
| 411 |
+
aplicar_operacao(df_aval, scv_4, 6)
|
| 412 |
+
aplicar_operacao(df_aval, scv_5, 7)
|
| 413 |
+
aplicar_operacao(df_aval, scv_6, 8)
|
| 414 |
+
aplicar_operacao(df_aval, scv_7, 9)
|
| 415 |
+
aplicar_operacao(df_aval, scv_8, 10)
|
| 416 |
+
aplicar_operacao(df_aval, scv_9, 11)
|
| 417 |
+
aplicar_operacao(df_aval, scv_10, 12)
|
| 418 |
+
aplicar_operacao(df_aval, scv_11, 13)
|
| 419 |
+
aplicar_operacao(df_aval, scv_12, 14)
|
| 420 |
+
aplicar_operacao(df_aval, scv_13, 15)
|
| 421 |
+
aplicar_operacao(df_aval, scv_14, 16)
|
| 422 |
+
aplicar_operacao(df_aval, scv_15, 17)
|
| 423 |
+
aplicar_operacao(df_aval, scv_16, 18)
|
| 424 |
|
| 425 |
X_aval = pd.DataFrame()
|
| 426 |
|
| 427 |
# Iterar sobre as colunas do DataFrame df_filtrado
|
| 428 |
for i, col in enumerate(df_aval.columns):
|
| 429 |
# Verificar se a coluna atual deve ser adicionada com base na condição e se ela existe no DataFrame
|
| 430 |
+
if (i == 3 and v_1) or \
|
| 431 |
+
(i == 4 and v_2) or \
|
| 432 |
+
(i == 5 and v_3) or \
|
| 433 |
+
(i == 6 and v_4) or \
|
| 434 |
+
(i == 7 and v_5) or \
|
| 435 |
+
(i == 8 and v_6) or \
|
| 436 |
+
(i == 9 and v_7) or \
|
| 437 |
+
(i == 10 and v_8) or \
|
| 438 |
+
(i == 11 and v_9) or \
|
| 439 |
+
(i == 12 and v_10) or \
|
| 440 |
+
(i == 13 and v_11) or \
|
| 441 |
+
(i == 14 and v_12) or \
|
| 442 |
+
(i == 15 and v_13) or \
|
| 443 |
+
(i == 16 and v_14) or \
|
| 444 |
+
(i == 17 and v_15) or \
|
| 445 |
+
(i == 18 and v_16):
|
| 446 |
if i < len(df_aval.columns):
|
| 447 |
X_aval[col] = df_aval.iloc[:, i]
|
| 448 |
|
|
|
|
| 589 |
df_original,
|
| 590 |
colunas,
|
| 591 |
resultados_gerais,
|
|
|
|
| 592 |
equacao_modelo,
|
| 593 |
+
resultado_html,
|
| 594 |
df_final,
|
| 595 |
Listagem_df_maiores_que_2,
|
| 596 |
pontos_influentes,
|
|
|
|
| 618 |
'planilha_aval.xlsx',
|
| 619 |
#X_aval,
|
| 620 |
#X,
|
| 621 |
+
#y,
|
| 622 |
)
|
| 623 |
|
| 624 |
#--------------------------------------Interface---------------------------------#
|
|
|
|
| 694 |
cols = gr.Textbox(label="Colunas", scale=1)
|
| 695 |
with gr.Row():
|
| 696 |
tx_1 = gr.Textbox(label="Resultados Gerais do Modelo", scale=1)
|
| 697 |
+
tx_2 = gr.Textbox(label="Equação do Modelo")
|
| 698 |
+
ht_1 = gr.HTML(label="Resultados por variável")
|
| 699 |
df_2 = gr.Dataframe(label="Planilha Regressão Linear (Variáveis e escalas escolhidas e sem outliers)", height=300)
|
| 700 |
tx_3 = gr.Textbox(label="Listagem de dados com resíduos padronizados > 2")
|
| 701 |
tx_5 = gr.Textbox(label="Listagem de pontos Influenciantes (Distância de Cook > 1)")
|
|
|
|
| 724 |
fl_2 = gr.components.File(label="Resultado da Avaliação")
|
| 725 |
#df_7 = gr.Dataframe(label="X_avall", height=300)
|
| 726 |
#df_8 = gr.Dataframe(label="X", height=300)
|
| 727 |
+
#df_9 = gr.Dataframe(label="y", height=300)
|
| 728 |
|
| 729 |
inputs = [fl_1, drop, rd_0, cb_1, rd_1, cb_2, rd_2, cb_3, rd_3, cb_4, rd_4, cb_5, rd_5, cb_6, rd_6,
|
| 730 |
cb_7, rd_7, cb_8, rd_8, cb_9, rd_9, cb_10, rd_10, cb_11, rd_11, cb_12, rd_12, cb_13, rd_13,
|
| 731 |
cb_14, rd_14, cb_15, rd_15, cb_16, rd_16, cb_17]
|
| 732 |
+
outputs = [df_1, cols, tx_1, tx_2, ht_1, df_2, tx_3, tx_5, df_3, df_4, df_5, pt_1, pt_2, pt_3, pt_4, pt_5, pt_6,
|
| 733 |
+
pt_7, pt_8, pt_9, pt_10, pt_11, pt_12, pt_13, pt_14, pt_15, pt_16, pt_17, df_6, fl_2] #, df_7, df_8, df_9]
|
| 734 |
|
| 735 |
button_1.click(avaliacao_imovel, inputs=inputs, outputs=outputs)
|
| 736 |
button_2.click(avaliacao_imovel, inputs=inputs, outputs=outputs)
|