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.