Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -86,7 +86,7 @@ def plotar_mapa_com_dois_dataframes(df1, df2):
|
|
| 86 |
#-----------------#
|
| 87 |
|
| 88 |
# Função de avaliação do imóvel
|
| 89 |
-
def avaliacao_imovel(planilha, num_linhas_desejadas=10):
|
| 90 |
# Lendo a aba 'avaliando' da planilha
|
| 91 |
df_avaliando = pd.read_excel(planilha.name, 'avaliando')
|
| 92 |
|
|
@@ -348,6 +348,61 @@ def avaliacao_imovel(planilha, num_linhas_desejadas=10):
|
|
| 348 |
# REMOÇÃO DE OUTLIERS PELO CRITÉRIO DE CHAUVENET
|
| 349 |
result = result[result['Status'] != 'rejeitado']
|
| 350 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 351 |
# RESULTADOS ESTATÍSTICOS FINAIS
|
| 352 |
|
| 353 |
num = len(result)
|
|
@@ -407,6 +462,7 @@ def avaliacao_imovel(planilha, num_linhas_desejadas=10):
|
|
| 407 |
limite superior IC_80%: {ls_IC} R$/m²
|
| 408 |
Aplitude: {A} R$/m²
|
| 409 |
Aplitude percentual: {A_perc} %
|
|
|
|
| 410 |
Grau de Precisão: {precisao}
|
| 411 |
"""
|
| 412 |
|
|
@@ -517,6 +573,7 @@ def avaliacao_imovel(planilha, num_linhas_desejadas=10):
|
|
| 517 |
'Limite inferior do IC de 80%': [li_IC],
|
| 518 |
'Amplitude': [A],
|
| 519 |
'Amplitude%':[A_perc],
|
|
|
|
| 520 |
'Grau de Precisão': [precisao]
|
| 521 |
})
|
| 522 |
|
|
@@ -604,6 +661,14 @@ interface = gr.Interface(
|
|
| 604 |
inputs=[
|
| 605 |
gr.components.File(label="Upload planilha", type="file"),
|
| 606 |
gr.inputs.Number(label="Número de linhas desejadas", default=10),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 607 |
],
|
| 608 |
outputs=[
|
| 609 |
gr.components.File(label="Download planilha"),
|
|
@@ -612,7 +677,7 @@ interface = gr.Interface(
|
|
| 612 |
gr.components.Textbox(label="Resultados estatísticos"),
|
| 613 |
gr.components.Textbox(label="Intervalo de confiança de 80%"),
|
| 614 |
gr.components.Textbox(label="Valores Calculados"),
|
| 615 |
-
gr.Plot(label="Geolocalização da amostra"),
|
| 616 |
|
| 617 |
],
|
| 618 |
live=True,
|
|
|
|
| 86 |
#-----------------#
|
| 87 |
|
| 88 |
# Função de avaliação do imóvel
|
| 89 |
+
def avaliacao_imovel(planilha, num_linhas_desejadas=10, caract_avaliando='Defina o item 1 de Fundamentação', ident_dados='Defina o item 1 de Fundamentação'):
|
| 90 |
# Lendo a aba 'avaliando' da planilha
|
| 91 |
df_avaliando = pd.read_excel(planilha.name, 'avaliando')
|
| 92 |
|
|
|
|
| 348 |
# REMOÇÃO DE OUTLIERS PELO CRITÉRIO DE CHAUVENET
|
| 349 |
result = result[result['Status'] != 'rejeitado']
|
| 350 |
|
| 351 |
+
# GRAU DE FUNDAMENTAÇÃO
|
| 352 |
+
|
| 353 |
+
# item_1 - Graus de Fundamentação (Caracterização do imóvel avaliando)
|
| 354 |
+
if caract_avaliando == "Completa quanto a todos os fatores analisados":
|
| 355 |
+
item_1 = 3
|
| 356 |
+
elif caract_avaliando == "Completa quanto aos fatores utilizados no tratamento":
|
| 357 |
+
item_1 = 2
|
| 358 |
+
else:
|
| 359 |
+
item_1 = 1
|
| 360 |
+
|
| 361 |
+
# item_2 - Graus de Fundamentação (Quantidade mínima de dados)
|
| 362 |
+
if num >= 12:
|
| 363 |
+
item_2 = 3
|
| 364 |
+
elif 5 <= num <12:
|
| 365 |
+
item_2 = 2
|
| 366 |
+
elif 3 <= num <5:
|
| 367 |
+
item_2 = 1
|
| 368 |
+
else:
|
| 369 |
+
item_2 = 0
|
| 370 |
+
|
| 371 |
+
# item_3 - Graus de Fundamentação (Identificação dos dados)
|
| 372 |
+
if ident_dados == "Apresentação de informações relativas a todas as características dos dados analisados, com foto e características observadas pelo autor do laudo":
|
| 373 |
+
item_3 = 3
|
| 374 |
+
elif ident_dados == "Apresentação de informações relativas a todas as características dos dados analisados":
|
| 375 |
+
item_3 = 2
|
| 376 |
+
else:
|
| 377 |
+
item_3 = 1
|
| 378 |
+
|
| 379 |
+
# item_4 - Graus de Fundamentação ( Intervalo admissível de ajuste para o conjunto de fatores)
|
| 380 |
+
max = result.iloc[:, 15:23].max().max()
|
| 381 |
+
min = result.iloc[:, 15:23].min().min()
|
| 382 |
+
if num >= 5:
|
| 383 |
+
if min >= 0.8 and max <= 1.2:
|
| 384 |
+
item_4 = 3
|
| 385 |
+
elif min >= 0.5 and max <= 2.0:
|
| 386 |
+
item_4 = 2
|
| 387 |
+
else:
|
| 388 |
+
item_4 = 1 # Condição ausente aqui
|
| 389 |
+
else:
|
| 390 |
+
if min >= 0.8 and max <= 1.2:
|
| 391 |
+
item_4 = 1
|
| 392 |
+
else:
|
| 393 |
+
item_4 = 0
|
| 394 |
+
|
| 395 |
+
# enquadramento
|
| 396 |
+
soma = item_1 + item_2 + item_3 + item_4
|
| 397 |
+
if soma > 10 and item_2 == 3 and item_4 == 3 and item_1 >= 2 and item_3 >= 2:
|
| 398 |
+
fundamentacao = "III"
|
| 399 |
+
elif soma > 6 and item_2 >= 2 and item_4 >= 2 and item_1 >= 1 and item_3 >= 1:
|
| 400 |
+
fundamentacao = "II"
|
| 401 |
+
elif soma > 4 and item_2 >= 1 and item_4 >= 1 and item_1 >= 1 and item_3 >= 1:
|
| 402 |
+
fundamentacao = "I"
|
| 403 |
+
else:
|
| 404 |
+
fundamentacao = "Fora dos critérios"
|
| 405 |
+
|
| 406 |
# RESULTADOS ESTATÍSTICOS FINAIS
|
| 407 |
|
| 408 |
num = len(result)
|
|
|
|
| 462 |
limite superior IC_80%: {ls_IC} R$/m²
|
| 463 |
Aplitude: {A} R$/m²
|
| 464 |
Aplitude percentual: {A_perc} %
|
| 465 |
+
Grau de Fundamentação {fundamentacao}
|
| 466 |
Grau de Precisão: {precisao}
|
| 467 |
"""
|
| 468 |
|
|
|
|
| 573 |
'Limite inferior do IC de 80%': [li_IC],
|
| 574 |
'Amplitude': [A],
|
| 575 |
'Amplitude%':[A_perc],
|
| 576 |
+
'Grau de Fundamentação': [fundamentacao],
|
| 577 |
'Grau de Precisão': [precisao]
|
| 578 |
})
|
| 579 |
|
|
|
|
| 661 |
inputs=[
|
| 662 |
gr.components.File(label="Upload planilha", type="file"),
|
| 663 |
gr.inputs.Number(label="Número de linhas desejadas", default=10),
|
| 664 |
+
gr.inputs.Dropdown(label="Caracterização do avaliando - Grau de Fundamentação", choices=["Completa quanto a todos os fatores analisados",
|
| 665 |
+
"Completa quanto aos fatores utilizados no tratamento",
|
| 666 |
+
"Adoção de situação paradigma"],
|
| 667 |
+
default="Defina o item 1 de Fundamentação"),
|
| 668 |
+
gr.inputs.Dropdown(label="Identificação dos dados - Grau de Fundamentação", choices=["Apresentação de informações relativas a todas as características dos dados analisados, com foto e características observadas pelo autor do laudo",
|
| 669 |
+
"Apresentação de informações relativas a todas as características dos dados analisados",
|
| 670 |
+
"Apresentação de informações relativas a todas as características dos dados correspondentes aos fatores analisados"],
|
| 671 |
+
default="Defina o item 3 de Fundamentação")
|
| 672 |
],
|
| 673 |
outputs=[
|
| 674 |
gr.components.File(label="Download planilha"),
|
|
|
|
| 677 |
gr.components.Textbox(label="Resultados estatísticos"),
|
| 678 |
gr.components.Textbox(label="Intervalo de confiança de 80%"),
|
| 679 |
gr.components.Textbox(label="Valores Calculados"),
|
| 680 |
+
gr.Plot(label="Geolocalização da amostra"),
|
| 681 |
|
| 682 |
],
|
| 683 |
live=True,
|