def ranking_criminal_por_estado(quantidade, sigla): # token = request.headers.get('Authorization').split(' ')[1] # if not(authorization(token)): # return jsonify({'msg': 'Token inválido, faça login novamente'}) sigla = converter_sigla2nome(sigla) aux = {} if sigla == 'bra' or sigla == 'brasil': for i in range(0, dadosOcorrenciasDF.index.stop): aux.update({dadosOcorrenciasDF.loc[i, 'tipocrime']: int(0 if aux.get(dadosOcorrenciasDF.loc[i, 'tipocrime']) is None else aux.get(dadosOcorrenciasDF.loc[i, 'tipocrime'])) + int(dadosOcorrenciasDF.loc[i, 'ocorrencias'])}) else: for i in range(0, dadosOcorrenciasDF.index.stop): if dadosOcorrenciasDF.loc[i, 'uf'] == sigla: aux.update({dadosOcorrenciasDF.loc[i, 'tipocrime']: int(0 if aux.get(dadosOcorrenciasDF.loc[i, 'tipocrime']) is None else aux.get(dadosOcorrenciasDF.loc[i, 'tipocrime'])) + int(dadosOcorrenciasDF.loc[i, 'ocorrencias'])}) aux = dict(sorted(aux.items(), key=itemgetter(1), reverse=True)) result = list(aux)[:int(quantidade)] lista = [None]*len(result) for i in range(len(result)): lista[i] = aux[result[i]] auxDF = pd.DataFrame({'crime': result, 'ocorrencias': lista}) auxDF.reset_index(drop=True) return auxDF.reset_index().to_json(orient='records')
def media_ocorrencias_nome_sigla_periodo(nomedocrime, sigla, inicio, fim): # token = request.headers.get('Authorization').split(' ')[1] # if not(authorization(token)): # return jsonify({'msg': 'Token inválido, faça login novamente'}) print(nomedocrime, sigla, inicio, fim) sigla = converter_sigla2nome(sigla) nomedocrime = converter_crime(nomedocrime) if int(inicio) < 2015 or int(fim) > 2020: return jsonify({'msg': 'Por favor inserir um periodo entre 2015 e 2020'}) if int(inicio) > int(fim): aux = inicio inicio = fim fim = aux if nomedocrime == 'todos' and (sigla == 'bra' or sigla == 'brasil') and inicio==2015 and fim==2020: result = dadosOcorrenciasDF.drop(['ano'], axis=1).groupby(['tipocrime']).sum().ocorrencias #result = result/contar_meses(inicio,fim) return result.to_json() result = dadosOcorrenciasDF.query('uf == "valor1" & tipocrime == "valor2"'.replace('valor1', sigla).replace('valor2', nomedocrime)).ocorrencias return jsonify({ 'UF': 'BRA', 'nomedocrime':nomedocrime, 'inicio': inicio, 'fim': fim, 'media_mensal' : sum(result)})
def media_vitimas_nome_sigla_periodo(nomedocrime, sigla, inicio, fim): # token = request.headers.get('Authorization').split(' ')[1] # if not(authorization(token)): # return jsonify({'msg': 'Token inválido, faça login novamente'}) sigla = converter_sigla2nome(sigla) nomedocrime = converter_crime(nomedocrime) mes_inicio, ano_inicio = inicio.split("-") mes_inicio = int(mes_inicio) ano_inicio = int(ano_inicio) mes_fim, ano_fim = fim.split("-") mes_fim = int(mes_fim) ano_fim = int(ano_fim) dicionario2 = {'janeiro': '1', 'fevereiro': '2', 'março': '3', 'abril': '4', 'maio': '5', 'junho': '6', 'julho' : '7', 'agosto' : '8', 'setembro' : '9', 'outubro' : '10', 'novembro' : '11', 'dezembro' : '12'} dadosVitimasDF.replace(dicionario2, regex=True, inplace=True) dadosVitimasDF.mes = dadosVitimasDF.mes.astype(int) dadosVitimasDF0 = dadosVitimasDF[dadosVitimasDF.tipocrime == nomedocrime] dadosVitimasDF0 = dadosVitimasDF0[dadosVitimasDF0.uf == sigla] if (ano_fim != ano_inicio): dadosVitimasDF1 = dadosVitimasDF0.loc[np.logical_and(dadosVitimasDF0.ano == ano_inicio, dadosVitimasDF0.mes >= mes_inicio)] dadosVitimasDF2 = dadosVitimasDF0.loc[np.logical_and(dadosVitimasDF0.ano > ano_inicio, dadosVitimasDF0.ano < ano_fim)] dadosVitimasDF3 = dadosVitimasDF0.loc[np.logical_and(dadosVitimasDF0.ano == ano_fim, dadosVitimasDF0.mes >= mes_fim)] frames = [dadosVitimasDF1, dadosVitimasDF2, dadosVitimasDF3] vitimasNoPeriodo = pd.concat(frames) else: vitimasNoPeriodo = dadosVitimasDF0.loc[np.logical_and(dadosVitimasDF0.mes >= mes_inicio, dadosVitimasDF0.mes <= mes_fim)] vitimasNoPeriodo = vitimasNoPeriodo.iloc[:,[0,4]] vitimasNoPeriodoMedio = vitimasNoPeriodo.mean(axis=0) return vitimasNoPeriodoMedio.to_json()
def qtd_vitimas_nome_sigla(nomedocrime, sigla): # token = request.headers.get('Authorization').split(' ')[1] # if not(authorization(token)): # return jsonify({'msg': 'Token inválido, faça login novamente'}) sigla = converter_sigla2nome(sigla) nomedocrime = converter_crime(nomedocrime) if nomedocrime == 'todos' and(sigla == 'bra' or sigla == 'brasil'): result = dadosVitimasDF.drop(['ano'], axis=1).groupby(['tipocrime']).sum().vitimas return result.to_json() if sigla == 'bra' or sigla == 'brasil': result = dadosVitimasDF.query('tipocrime == "valor2"'.replace('valor2', nomedocrime)).vitimas return jsonify({"UF" : "BR",'quantidade': sum(result)}) if nomedocrime == 'todos': result = dadosVitimasDF.query('uf == "valor1"'.replace('valor1', sigla)).drop(['ano'], axis=1).groupby(['tipocrime']).sum().vitimas return result.to_json() if sigla == 'estados': result = dadosVitimasDF.query('tipocrime == "valor2"'.replace('valor2', nomedocrime)).groupby(['uf']).sum().vitimas return result.to_json() result = dadosVitimasDF.query('uf == "valor1" & tipocrime == "valor2"'.replace('valor1', sigla).replace('valor2', nomedocrime)).vitimas uf_estado = converter_nome2sigla(sigla) return jsonify({'UF': uf_estado ,'quantidade': sum(result)})