def say_synapse(text, amplitude=None, wpm=None): """Synapse to adapt the parameters of say. Args: text (str): text to reproduce. amplitude(int, optional): string representation of an integer. wpm(int, optional): string representation of an integer. Returns: ([str, int, int], {}): a tuple of args and kwargs. The last one is always empty. """ res = [text] res += [str_to_int(amplitude)] if amplitude else [] res += [str_to_int(wpm)] if wpm else [] return res, {}
async def join_gathering(ctx): def check(message): if (message.author == ctx.author) and (message.channel == ctx.channel): return True else: return False try: gatherings = [] for gathering_data in db['gatherings']: gathering = Gathering(gathering_data) if gathering.isOpen(): gatherings.append(gathering) await ctx.send( 'Type the number of the circle you want to join:\n{0}' .format(bot.pprint_gatherings(gatherings)) ) msg = await bot.wait_for('message', check=check) index = util.str_to_int(msg.content) if (index > len(gatherings) - 1) or index < 0: raise ValueError('Number is out of range') gathering = gatherings[index] user = User({'name': ctx.author.name, 'id': ctx.author.id}) if user not in gathering.users: gathering.users.append(user) await ctx.send(f'**You have joined: {gathering.name}**') except (ValueError, IndexError) as e: await ctx.send(f'Error: {str(e)}\nEXITING COMMAND')
async def select_topics(self, ctx, length): def check(msg): if (msg.author == ctx.author) and (msg.channel == ctx.channel): return True else: return False available_topics = Topics(deepcopy(Topics.all_topics)) result_list = [] while len(result_list) < length: await ctx.send( 'Type the number corresponding to the topic to select it:\n{0}' .format(available_topics.pprint())) msg = await self.wait_for('message', check=check) index = util.str_to_int(msg.content) if index > len(available_topics) - 1: raise ValueError( "Your selection must be between 1 and {0}".format( len(available_topics) - 1)) result_list.append(available_topics[index]) await ctx.send( f'**Topic {len(result_list)}: {available_topics[index]}**') available_topics.remove(index) await ctx.send(f'**Your selections are: {", ".join(result_list)}**') return result_list
def _download_one_day(self, day): """輸入一個date或datetime物件,下載物件指定的日期的資訊。 """ if self.isHoliday(day): return {'_id': self.date_to_datetime(day), 'TradingDay': False} ts = self.timestamp() self.js = js = proxy.get( self.url.format(day.year, day.month, day.day, ts)).json() item = None for k in js.keys(): if k.startswith('fields') and js[k][0] == '證券代號': item = js['data' + k.replace('fields', '')] if not item: return {'_id': self.date_to_datetime(day), 'TradingDay': False} data = dict() data['_id'] = self.date_to_datetime(day) data['TradingDay'] = True for row in item: if not row[0].isdigit(): continue item_name = row[0] data[item_name + '_成交股數'] = str_to_int(row[2]) data[item_name + '_成交筆數'] = str_to_int(row[3]) data[item_name + '_成交金額'] = str_to_int(row[4]) if data[item_name + '_成交筆數'] == 0: data[item_name + '_平均每筆金額'] = 0.0 data[item_name + '_平均每筆股數'] = 0.0 else: n_trans = float(data[item_name + '_成交筆數']) data[item_name + '_平均每筆金額'] = data[item_name + '_成交金額'] / n_trans data[item_name + '_平均每筆股數'] = data[item_name + '_成交股數'] / n_trans data[item_name + '_開盤價'] = str_to_float(row[5]) data[item_name + '_最高價'] = str_to_float(row[6]) data[item_name + '_最低價'] = str_to_float(row[7]) data[item_name + '_收盤價'] = str_to_float(row[8]) return data
def movetime_synapse(time): """Synapse to adapt a time string to an integer. Internally it calls `str_to_int` so refer to it for a general overview. Args: speed_value (str): string representation of an integer. Returns: ([bool], {}): a tuple of args and kwargs. The last one is always empty. """ res = [str_to_int(time)] if time else [] return res, {}
def _download_one_day(self, day): """輸入一個date或datetime物件,下載物件指定的日期的資訊。 """ if self.isHoliday(day): return {'_id': self.date_to_datetime(day), 'TradingDay': False} ts = self.timestamp() self.day = day self.js = js = proxy.get( self.url.format(day.year, day.month, day.day, ts)).json() item = None for k in js.keys(): if k.startswith('fields') and js[k][0] == '成交統計': item = js['data' + k.replace('fields', '')] if not item: return {'_id': self.date_to_datetime(day), 'TradingDay': False} data = dict() data['_id'] = self.date_to_datetime(day) data['TradingDay'] = True for row in item[:12]: item_name = '成交統計_' + re.sub(r'\(.*\)', '', row[0]).replace( '.', '_') data[item_name + '_成交金額'] = str_to_int(row[1]) data[item_name + '_成交股數'] = str_to_int(row[2]) data[item_name + '_成交筆數'] = str_to_int(row[3]) if data[item_name + '_成交筆數'] == 0: data[item_name + '_平均每筆金額'] = 0.0 data[item_name + '_平均每筆股數'] = 0.0 else: n_trans = float(data[item_name + '_成交筆數']) data[item_name + '_平均每筆金額'] = data[item_name + '_成交金額'] / n_trans data[item_name + '_平均每筆股數'] = data[item_name + '_成交股數'] / n_trans return data
def _download_one_day(self, day): """輸入一個date或datetime物件,下載物件指定的日期的資訊。 """ date_key = '{:04d}{:02d}'.format(day.year, day.month) if date_key in self.cache: js = self.cache[date_key] else: print('cache miss', date_key) ts = self.timestamp() self.cache[date_key] = js = proxy.get( self.url.format(day.year, day.month, 1, ts)).json() if 'data' not in js: return {'_id': self.date_to_datetime(day), 'TradingDay': False} found = [ item for item in js['data'] if item[0] == '{:3d}/{:02d}/{:02d}'.format( day.year - 1911, day.month, day.day) ] if not found: return {'_id': self.date_to_datetime(day), 'TradingDay': False} item = found[0] data = dict() data['_id'] = self.date_to_datetime(day) data['TradingDay'] = True data['成交股數'] = str_to_int(item[1]) data['成交金額'] = str_to_int(item[2]) data['成交筆數'] = str_to_int(item[3]) data['發行量加權股價指數'] = str_to_float(item[4]) data['漲跌點數'] = str_to_float(item[5]) if data['成交筆數'] == 0: data['平均每筆金額'] = 0.0 data['平均每筆股數'] = 0.0 else: n_trans = float(data['成交筆數']) data['平均每筆金額'] = data['成交金額'] / n_trans data['平均每筆股數'] = data['成交股數'] / n_trans return data
def post(self): pagesize = util.str_to_int(flask.request.form.get("pagesize"), default=10, min_value=10, max_value=100) target = util.str_one_of(flask.request.form.get("target"), "blank", ["self", "blank"]) suggest = util.str_to_bool(flask.request.form.get("suggest", "off"), True, "on", "off") flask.session["pagesize"] = pagesize flask.session["target"] = target flask.session["suggest"] = suggest return flask.redirect(flask.url_for("main"))
async def delete_gathering(ctx): def check(message): if (message.author == ctx.author) and (message.channel == ctx.channel): return True else: return False if not db['gatherings']: await ctx.send('No Gatherings') return try: all_gatherings = [Gathering(data) for data in db['gatherings']] gatherings = [ gathering for gathering in all_gatherings if gathering.author.id == ctx.author.id ] if not gatherings: await ctx.send('You did not create any gatherings') return # Author created only 1 gathering: if len(gatherings) == 1: selected_gathering = gatherings[0] # Author created multiple gatherings else: await ctx.send( '**Select the Index of the Circle to delete:**\n{0}' .format(bot.pprint_gatherings(gatherings)) ) msg = await bot.wait_for('message', check=check) index = util.str_to_int(msg.content) if (index > len(gatherings) - 1) or index < 0: raise ValueError('Number is out of range') selected_gathering = gatherings[index] # Delete Selected Gathering: await ctx.send( '**Do you wish to delete this gathering? Type y or n**\n{0}' .format(selected_gathering.toString()) ) msg = await bot.wait_for('message', check=check) if msg.content not in ['y', 'n']: raise ValueError('Type y or n only') if msg.content == 'y': index = all_gatherings.index(selected_gathering) del db['gatherings'][index] await ctx.send('Circled Deleted') time.sleep(2) await ctx.invoke(bot.get_command('clear')) except (ValueError, IndexError) as e: await ctx.send(f'Error: {str(e)}\nEXITING COMMAND')
def _download_one_day(self, day): """輸入一個date或datetime物件,下載物件指定的日期的資訊。 """ try: self.get_json(day, name_field='fields', value_field='data') except HolidayException: return {'_id': self.date_to_datetime(day), 'TradingDay': False} data = dict() data['_id'] = self.date_to_datetime(day) data['TradingDay'] = True for row in self.js['data']: item_name = row[0].replace(')', '').replace('(', '_') if row[0] == '合計': continue for name, value in zip(self.js['fields'][1:], row[1:]): data[item_name + '_' + name] = str_to_int(value) return data
def _download_one_day(self, day): """輸入一個date或datetime物件,下載物件指定的日期的資訊。 """ try: self.get_json(day, name_field='creditFields', value_field='creditList') except HolidayException: return {'_id': self.date_to_datetime(day), 'TradingDay': False} data = dict() data['_id'] = self.date_to_datetime(day) data['TradingDay'] = True for row in self.js['creditList']: item_name = re.sub('\(.*?\)', '', row[0]) for name, value in zip(self.js['creditFields'][1:], row[1:]): data[item_name + '_' + re.sub('\(.*?\)', '', name)] = str_to_int(value) return data
def get(self): query = flask.request.args.get("q") if query == None or query == "": return flask.redirect(flask.url_for("main")) pagesize = flask.session["pagesize"] if "pagesize" in flask.session else 10 page = util.str_to_int(flask.request.args.get("p"), default=1, min_value=1) result = self.indexer.search(query, page, pagesize) target = flask.session["target"] if "target" in flask.session else "blank" suggest = flask.session["suggest"] if "suggest" in flask.session else True if suggest: maybe = self.indexer.suggest(query) suggest = maybe != query else: maybe = None return flask.render_template("search.html", text=query, suggest=suggest, maybe=maybe, result=result, page=page, target=target)
def processa_estados(): enf_uf, med_uf, hosp_uf, leitos_uf, uti_uf, uti_sus_uf, ibge_uf = util.read_uf_reg() # troca "-" pelo valor 0 nas celulas em que aparece util.dash_to_zero(enf_uf) util.dash_to_zero(med_uf) util.dash_to_zero(hosp_uf) util.dash_to_zero(leitos_uf) util.dash_to_zero(uti_uf) util.dash_to_zero(uti_sus_uf) # converte strings para valores numericos quando pertinente util.str_to_int(enf_uf) util.str_to_int(med_uf) util.str_to_int(hosp_uf) util.str_to_int(leitos_uf) util.str_to_int(uti_uf) util.str_to_int(uti_sus_uf) # retira linhas com informacoes desnecessarias util.drop(enf_uf, [-1, -1, -1]) util.drop(med_uf, [-1, -1, -1]) util.drop(hosp_uf, [-1, -1]) util.drop(leitos_uf, [-1, -1]) util.drop(uti_uf, [-1, -1]) util.drop(uti_sus_uf, [-1, -1, -1]) # cada bloco a seguir cria um atributo da tabela final nome = enf_uf["Região/Unidade da Federação"] # remove caracteres desnecessarios for i in range(len(nome)): nome[i] = nome[i].strip(". ") pop = [] for item in ibge_uf["EST_POP_19"]: pop.append(item) # adiciona populacoes de cada regiao pop.insert(0, sum(ibge_uf["EST_POP_19"][0:7])) # norte pop.insert(8, sum(ibge_uf["EST_POP_19"][7:16])) # nordeste pop.insert(18, sum(ibge_uf["EST_POP_19"][16:20])) # sudeste pop.insert(23, sum(ibge_uf["EST_POP_19"][20:23])) # sul pop.insert(27, sum(ibge_uf["EST_POP_19"][23:27])) # centro-oeste enf_sus = enf_uf["Sim"] enf_nsus = enf_uf["Não"] enf_total = enf_uf["Total"] enf_sus_percent = util.percent(enf_sus, enf_total) enf_10k = util.pop_ratio(enf_total, 10000, pop) med_sus = med_uf["Sim"] med_nsus = med_uf["Não"] med_total = med_uf["Total"] med_sus_percent = util.percent(med_sus, med_total) med_10k = util.pop_ratio(med_total, 10000, pop) hosp_publ = [] for i in range(len(hosp_uf)): hosp_publ.append(int(sum([hosp_uf["Administração Pública Federal"][i], hosp_uf["Administração Pública Estadual ou Distrito Federal"][i], hosp_uf["Administração Pública Municipal"][i], hosp_uf["Administração Pública - Outros"][i], hosp_uf["Empresa Pública ou Sociedade de Economia Mista"][i]]))) hosp_npubl = [] for i in range(len(hosp_uf)): hosp_npubl.append(int(sum([hosp_uf["Demais Entidades Empresariais"][i], hosp_uf["Entidades sem Fins Lucrativos"][i]]))) hosp_total = [] for i in range(len(hosp_uf)): hosp_total.append(int(hosp_publ[i] + hosp_npubl[i])) hosp_publ_percent = util.percent(hosp_publ, hosp_total) hosp_100k = util.pop_ratio(hosp_total, 100000, pop) leitos_sus = [] for i in range(len(leitos_uf)): leitos_sus.append(int(leitos_uf["Quantidade SUS"][i])) leitos_nsus = [] for i in range(len(leitos_uf)): leitos_nsus.append(int(leitos_uf["Quantidade Não SUS"][i])) leitos_total = [] for i in range(len(leitos_uf)): leitos_total.append(int(leitos_sus[i] + leitos_nsus[i])) leitos_sus_percent = util.percent(leitos_sus, leitos_total) leitos_10k = util.pop_ratio(leitos_total, 10000, pop) leitos_uti_total = [] for i in range(len(uti_uf)): leitos_uti_total.append(int(uti_uf["Total"][i])) leitos_uti_sus = uti_sus_uf["Total"] leitos_uti_nsus = [] for i in range(len(leitos_uti_total)): leitos_uti_nsus.append(int(leitos_uti_total[i] - leitos_uti_sus[i])) leitos_uti_sus_percent = util.percent(leitos_uti_sus, leitos_uti_total) leitos_uti_10k = util.pop_ratio(leitos_uti_total, 10000, pop) leitos_covid_total = [] for i in range(len(uti_uf)): leitos_covid_total.append(int(uti_uf["UTI adulto II COVID-19"][i] + uti_uf["UTI pediátrica II COVID-19"][i])) leitos_covid_sus = [] for i in range(len(uti_sus_uf)): leitos_covid_sus.append(int(uti_sus_uf["UTI adulto II COVID-19"][i] + uti_sus_uf["UTI pediátrica II COVID-19"][i])) leitos_covid_nsus = [] for i in range(len(leitos_covid_total)): leitos_covid_nsus.append(int(leitos_covid_total[i] - leitos_covid_sus[i])) leitos_covid_sus_percent = util.percent(leitos_covid_sus, leitos_covid_total) leitos_covid_10k = util.pop_ratio(leitos_covid_total, 10000, pop) # deficit ou excesso de profissionais de saude no estado ou regiao # em relacao a densidade populacional # considerando referencia oms (health workforce requirements, 2016) # recomendado = 44.5 medicos/enfs a cada 10k habitantes rel_prof_saude_recomend = [] recomend = 44.5 for i in range(len(enf_total)): med_e_enf_10k = med_10k[i] + enf_10k[i] dfca = med_e_enf_10k - recomend # valor pos indica excesso; valor neg indica deficit rel_prof_saude_recomend.append(round((dfca*pop[i])/10000, 2)) dados = {'Região ou UF': nome, 'População': pop, 'Enfermeiros SUS': enf_sus, 'Enfermeiros não-SUS': enf_nsus, 'Enfermeiros - Total': enf_total, '%' + ' de enfermeiros SUS': enf_sus_percent, 'Enfermeiros a cada 10k habitantes': enf_10k, 'Médicos SUS': med_sus, 'Médicos não-SUS': med_nsus, 'Médicos - Total': med_total, '%' + ' de médicos SUS': med_sus_percent, 'Médicos a cada 10k habitantes': med_10k, 'Déficit ou excesso de médicos/enfermeiros': rel_prof_saude_recomend, 'Hospitais públicos': hosp_publ, 'Hospitais não-públicos': hosp_npubl, 'Hospitais - Total': hosp_total, '%' + ' de hospitais públicos': hosp_publ_percent, 'Hospitais a cada 100k habitantes': hosp_100k, 'Leitos (internação) SUS': leitos_sus, 'Leitos (internação) não-SUS': leitos_nsus, 'Leitos (internação) - Total': leitos_total, '%' + ' de leitos (internação) SUS': leitos_sus_percent, 'Leitos (internação) a cada 10k habitantes': leitos_10k, 'Leitos UTI SUS': leitos_uti_sus, 'Leitos UTI não-SUS': leitos_uti_nsus, 'Leitos UTI - Total': leitos_uti_total, '%' + ' de leitos UTI SUS': leitos_uti_sus_percent, 'Leitos UTI a cada 10k habitantes': leitos_uti_10k, 'Leitos UTI COVID-19 SUS': leitos_covid_sus, 'Leitos UTI COVID-19 não-SUS': leitos_covid_nsus, 'Leitos UTI COVID-19 - Total': leitos_covid_total, '%' + ' de leitos UTI COVID-19 SUS': leitos_covid_sus_percent, 'Leitos UTI COVID-19 a cada 10k habitantes': leitos_covid_10k} df = pd.DataFrame(data=dados) util.write_to_csv(df, "Brasil - UFs e Regiões") stats.stats_estados(pd.read_csv("../data/processed/Brasil - UFs e Regiões.csv"))
def processa_municipios(): enf_mun, med_mun, hosp_mun, leitos_mun, uti_mun, uti_sus_mun, ibge_mun = util.read_mun() # troca "-" pelo valor 0 nas celulas em que aparece util.dash_to_zero(enf_mun) util.dash_to_zero(med_mun) util.dash_to_zero(hosp_mun) util.dash_to_zero(leitos_mun) util.dash_to_zero(uti_mun) util.dash_to_zero(uti_sus_mun) # converte strings para valores numericos quando pertinente util.str_to_int(enf_mun) util.str_to_int(med_mun) util.str_to_int(hosp_mun) util.str_to_int(leitos_mun) util.str_to_int(uti_mun) util.str_to_int(uti_sus_mun) # retira linhas com informacoes desnecessarias util.drop(enf_mun, [-1, -1, -1]) util.drop(med_mun, [-1, -1, -1]) util.drop(hosp_mun, [-1, -1, -1]) util.drop(leitos_mun, [-1, -1, -1]) util.drop(uti_mun, [-1, -1, -1]) util.drop(uti_sus_mun, [-1, -1, -1]) util.drop_mun(enf_mun) util.drop_mun(med_mun) util.drop_mun(hosp_mun) util.drop_mun(leitos_mun) util.drop_mun(uti_mun) util.drop_mun(uti_sus_mun) # adiciona informacao sobre sigla correspondente a cada codigo uf siglas_uf = util.cod_to_uf(ibge_mun) ibge_mun["NM_UF"] = siglas_uf # remove ultimo digito do codigo municipal do dataset do ibge # o objetivo eh igualar ao codigo municipal dos datasets do datasus for i in range(len(ibge_mun)): ibge_mun.at[i, "CD_MUN"] = ibge_mun["CD_MUN"][i]//10 # cada bloco a seguir cria um atributo da tabela final cod = [] for i in range(len(enf_mun)): cod.append(int(enf_mun["Município"][i][0:7])) # primeiros seis digitos nome = [] for i in range(len(enf_mun)): nome.append(enf_mun["Município"][i][7:]) # todos os digitos menos 7 primeiros (6 do codigo + espaco) pop = [] # insere na ordem dos datasets do datasus for i in range(len(cod)): # pop_cod = populacao registrada para a linha em que cd_mun == cod[i] pop_cod = ibge_mun["EST_POP_19"][ibge_mun["CD_MUN"] == cod[i]].iloc[0] pop.append(pop_cod) uf = [] # insere na ordem dos datasets do datasus for i in range(len(cod)): # uf_cod = sigla da uf registrada para a linha em que cd_mun == cod[i] uf_cod = ibge_mun["NM_UF"][ibge_mun["CD_MUN"] == cod[i]].iloc[0] uf.append(uf_cod) enf_sus = enf_mun["Sim"] enf_nsus = enf_mun["Não"] enf_total = enf_mun["Total"] enf_sus_percent = util.percent(enf_sus, enf_total) enf_10k = util.pop_ratio(enf_total, 10000, pop) med_sus = med_mun["Sim"] med_nsus = med_mun["Não"] med_total = med_mun["Total"] med_sus_percent = util.percent(med_sus, med_total) med_10k = util.pop_ratio(med_total, 10000, pop) hosp_publ = [] for i in range(len(hosp_mun)): hosp_publ.append(int(sum([hosp_mun["Administração Pública Federal"][i], hosp_mun["Administração Pública Estadual ou Distrito Federal"][i], hosp_mun["Administração Pública Municipal"][i], hosp_mun["Administração Pública - Outros"][i], hosp_mun["Empresa Pública ou Sociedade de Economia Mista"][i]]))) hosp_npubl = [] for i in range(len(hosp_mun)): hosp_npubl.append(int(sum([hosp_mun["Demais Entidades Empresariais"][i], hosp_mun["Entidades sem Fins Lucrativos"][i]]))) hosp_total = [] for i in range(len(hosp_mun)): hosp_total.append(int(hosp_publ[i] + hosp_npubl[i])) hosp_publ_percent = util.percent(hosp_publ, hosp_total) hosp_100k = util.pop_ratio(hosp_total, 100000, pop) leitos_sus = leitos_mun["Quantidade SUS"] leitos_nsus = leitos_mun["Quantidade Não SUS"] leitos_total = [] for i in range(len(leitos_mun)): leitos_total.append(int(leitos_sus[i] + leitos_nsus[i])) leitos_sus_percent = util.percent(leitos_sus, leitos_total) leitos_10k = util.pop_ratio(leitos_total, 10000, pop) leitos_uti_total = uti_mun["Total"] leitos_uti_sus = uti_sus_mun["Total"] leitos_uti_nsus = [] for i in range(len(leitos_uti_total)): leitos_uti_nsus.append(int(leitos_uti_total[i] - leitos_uti_sus[i])) leitos_uti_sus_percent = util.percent(leitos_uti_sus, leitos_uti_total) leitos_uti_10k = util.pop_ratio(leitos_uti_total, 10000, pop) leitos_covid_total = [] for i in range(len(uti_mun)): leitos_covid_total.append(int(uti_mun["UTI adulto II COVID-19"][i] + uti_mun["UTI pediátrica II COVID-19"][i])) leitos_covid_sus = [] for i in range(len(uti_sus_mun)): leitos_covid_sus.append(int(uti_sus_mun["UTI adulto II COVID-19"][i] + uti_sus_mun["UTI pediátrica II COVID-19"][i])) leitos_covid_nsus = [] for i in range(len(leitos_covid_total)): leitos_covid_nsus.append(int(leitos_covid_total[i] - leitos_covid_sus[i])) leitos_covid_sus_percent = util.percent(leitos_covid_sus, leitos_covid_total) leitos_covid_10k = util.pop_ratio(leitos_covid_total, 10000, pop) # deficit ou excesso de profissionais de saude no municipio # em relacao a densidade populacional # considerando referencia oms (health workforce requirements, 2016) # recomendado = 44.5 medicos/enfs a cada 10k habitantes rel_prof_saude_recomend = [] recomend = 44.5 for i in range(len(enf_total)): med_e_enf_10k = med_10k[i] + enf_10k[i] dfca = med_e_enf_10k - recomend # valor pos indica excesso; valor neg indica deficit rel_prof_saude_recomend.append(round((dfca*pop[i])/10000, 2)) dados = {'Código Municipal': cod, 'Município': nome, 'População': pop, 'UF': uf, 'Enfermeiros SUS': enf_sus, 'Enfermeiros não-SUS': enf_nsus, 'Enfermeiros - Total': enf_total, '%' + ' de enfermeiros SUS': enf_sus_percent, 'Enfermeiros a cada 10k habitantes': enf_10k, 'Médicos SUS': med_sus, 'Médicos não-SUS': med_nsus, 'Médicos - Total': med_total, '%' + ' de médicos SUS': med_sus_percent, 'Médicos a cada 10k habitantes': med_10k, 'Déficit ou excesso de médicos/enfermeiros': rel_prof_saude_recomend, 'Hospitais públicos': hosp_publ, 'Hospitais não-públicos': hosp_npubl, 'Hospitais - Total': hosp_total, '%' + ' de hospitais públicos': hosp_publ_percent, 'Hospitais a cada 100k habitantes': hosp_100k, 'Leitos (internação) SUS': leitos_sus, 'Leitos (internação) não-SUS': leitos_nsus, 'Leitos (internação) - Total': leitos_total, '%' + ' de leitos (internação) SUS': leitos_sus_percent, 'Leitos (internação) a cada 10k habitantes': leitos_10k, 'Leitos UTI SUS': leitos_uti_sus, 'Leitos UTI não-SUS': leitos_uti_nsus, 'Leitos UTI - Total': leitos_uti_total, '%' + ' de leitos UTI SUS': leitos_uti_sus_percent, 'Leitos UTI a cada 10k habitantes': leitos_uti_10k, 'Leitos UTI COVID-19 SUS': leitos_covid_sus, 'Leitos UTI COVID-19 não-SUS': leitos_covid_nsus, 'Leitos UTI COVID-19 - Total': leitos_covid_total, '%' + ' de leitos UTI COVID-19 SUS': leitos_covid_sus_percent, 'Leitos UTI COVID-19 a cada 10k habitantes': leitos_covid_10k} df = pd.DataFrame(data=dados) util.write_to_csv(df, "Brasil - Municípios") stats.stats_municipios(pd.read_csv("../data/processed/Brasil - Municípios.csv"))