functions.utils module
Este módulo contém funções úteis para a manipulação da base de dados utilizando-se de datas, utilizada na visualização de alguns membros, além da filtragem dos dados.
- functions.utils.concat_data_by_dates(start_date: str, end_date: str, path='dados', file_names='Manipulados', filtered_columns=None) DataFrame[código fonte]
Concatena todos os dados de CSVs de dados entre as datas dadas e retorna um dataframe Pandas O formato do nome dos arquivos devem ser ‘nomedabase_ano_mes.csv’
Parameters
- start_date
type: str description: inicio da range de datas example: “2014-01”
- end_date
type: str description: final da range de datas example: “2021-11”
- path
type: str description: caminho da pasta com os arquivos example: “dados/”
- file_names
type: str description: nome padrão de salvamento dos arquivos example: “file_names_ANO_mês.csv”
- filtered_columns
type: list, optional description: colunas a serem filtradas se necessário da base de dados, caso não sejam válidas então todo o datafram é retornado example: “[“coluna_1”]”
Return
- dataset
type: pandas.Dataframe description: dataframe com todos os dados concatenados, caso as colunas de filtro sejam válidas, retorna o dataset com apenas elas como colunas.
Test
>>> type(concat_data_by_dates("2014/01", "2014/01")) <class 'pandas.core.frame.DataFrame'>
>>> len(concat_data_by_dates("2021/01", "2021/02", filtered_columns=["ANO_VENDA"]).columns) 1
>>> type(concat_data_by_dates("2021/01", "2021/01", filtered_columns=3)) As colunas filtradas devem ser uma lista de strings das colunas do dataframe, tente inserir novamente. <class 'pandas.core.frame.DataFrame'>
>>> type(concat_data_by_dates("2021/01", "2021/01", filtered_columns=["cachorro_mal"])) Uma ou mais colunas do filtro não estão nas colunas do dataframe, tente verificar as colunas do filtro. <class 'pandas.core.frame.DataFrame'>
- functions.utils.filtra_dados_por_valores_procurados(dados: DataFrame, coluna_do_valor: str, valores_procurados: list) DataFrame[código fonte]
Modifica e retorna o dataframe com apenas as linhas que possuem o valor procurado na coluna especificada.
Parameters
- dados
type: pandas.Dataframe description: dataframe a ser modificado
- coluna_do_valor
type: str description: nome da coluna em que o valor deve estar
- valores_procurados
type: list or str description: valores que vão ser procurados na coluna e mantidos example: [“CLOROQUINA”, “DISFOSFATO DE CLOROQUINA”]
Return
- dados
type: pandas.Dataframe description: dataframe com apenas as linhas que contém o valor desejado
Test
>>> dados = pd.DataFrame({"PINCIPIO_ATIVO": ["CLOROQUINA", "DIFOSFATO DE CLOROQUINA", "HIDROXICLOROQUINA", "IBUPROFENO"], "Qnt": [10, 5, 8, 15]}) >>> filtra_dados_por_valores_procurados(dados, "PINCIPIO_ATIVO", "CLOROQUINA")["Qnt"][0] 10
>>> filtra_dados_por_valores_procurados(dados, "PINCIPIO_ATIVO", ["CLOROQUINA", "HIDROXICLOROQUINA"])["Qnt"] 0 10 2 8 Name: Qnt, dtype: int64
>>> filtra_dados_por_valores_procurados(42, "PINCIPIO_ATIVO", "CLOROQUINA") DataFrame inválido, tente inserir outro DataFrame.
>>> filtra_dados_por_valores_procurados(dados, 66, "CLOROQUINA") Tente inserir um nome de coluna válido como string.
>>> filtra_dados_por_valores_procurados(dados, "COLUNA_INVÁLIDA", "CLOROQUINA") Coluna selecionada inválida, tente inserir o nome de uma coluna do DataFrame.
- functions.utils.set_anabolizantes(dataframe_bruto: DataFrame) DataFrame[código fonte]
A função tem como objetivo receber um dataframe bruto e realizar a filtragem dos dados retornando apenas os registros referentes a medicamentos anabolizantes e esteróides.
Parameters
- dataframe_bruto
type: pd.DataFrame description: dataframe completo e referente a todos os medicamentos
Return
- dataframe_final
type: pd.DataFrame description: dataframe filtrado apenas com os medicamentos anabolizantes
Test
>>> type(set_anabolizantes(dataframe_geral)) <class 'pandas.core.frame.DataFrame'>
>>> dataframe_vazio = pd.DataFrame() >>> set_anabolizantes(dataframe_vazio) Esse dataframe está no formato incorreto, ele não possui a coluna 'PRINCIPIO_ATIVO'.
>>> set_anabolizantes("Matheus") Algo deu errado. Verifique a documentação da função e tente novamente.