<jupyter_start><jupyter_text>Despesas - Autorizações de Pagamento do Governo do Estado da Paraíba De Janeiro/2021 a Junho/2021<jupyter_code># Instalação pacotes

!pip install pandas
!pip install PyMySQL
!pip install SQLAlchemy
import pandas as pd
# Carregar CSVs em data frame do pandas

df1 = pd.read_csv('../data/pagamento_exercicio_2021_mes_1.csv', encoding='ISO-8859-1',sep=';')
df2 = pd.read_csv('../data/pagamento_exercicio_2021_mes_2.csv', encoding='ISO-8859-1',sep=';')
df3 = pd.read_csv('../data/pagamento_exercicio_2021_mes_3.csv', encoding='ISO-8859-1',sep=';')
df4 = pd.read_csv('../data/pagamento_exercicio_2021_mes_4.csv', encoding='ISO-8859-1',sep=';')
df5 = pd.read_csv('../data/pagamento_exercicio_2021_mes_5.csv', encoding='ISO-8859-1',sep=';')
df6 = pd.read_csv('../data/pagamento_exercicio_2021_mes_6.csv', encoding='ISO-8859-1',sep=';')
# Concatenar todos os dataframes

df = pd.concat([df1, df2, df3, df4, df5, df6])<jupyter_output><empty_output><jupyter_text>Realização de análises e transformações<jupyter_code># Exibir as colunas

df.columns
# Exibir quantidade de linhas e colunas

df.shape
# Exibir tipos das colunas

df.dtypes
# Converter coluna (DATA_PAGAMENTO) em datetime
# Converter colunas (EXERCICIO, CODIGO_UNIDADE_GESTORA, NUMERO_EMPENHO, NUMERO_AUTORIZACAO_PAGAMENTO) em object

df["DATA_PAGAMENTO"] = pd.to_datetime(df["DATA_PAGAMENTO"])
df["EXERCICIO"] = df["EXERCICIO"].astype("object")
df["CODIGO_UNIDADE_GESTORA"] = df["CODIGO_UNIDADE_GESTORA"].astype("object")
df["NUMERO_EMPENHO"] = df["CODIGO_UNIDADE_GESTORA"].astype("object")
df["NUMERO_AUTORIZACAO_PAGAMENTO"] = df["NUMERO_AUTORIZACAO_PAGAMENTO"].astype("object")
# Exibir tipos das colunas

df.dtypes
# Consultar linhas com valores faltantes

df.isnull().sum()
# Exibir amostra

df.sample(10)
# Criar nova coluna que vai receber o mês de pagamento

df["MES_PAGAMENTO"] = df["DATA_PAGAMENTO"].dt.month
# Exibir amostra

df.sample(10)
# Conveter saída para coluna (VALOR_PAGAMENTO) com o tipo float

pd.options.display.float_format = 'R${:,.2f}'.format
# Retornar total pago agrupado por mês e por tipo de despesa

# df.groupby([df["MES_PAGAMENTO"], "TIPO_DESPESA"])["VALOR_PAGAMENTO"].sum().reset_index()

# Outra forma
df.groupby(['MES_PAGAMENTO', "TIPO_DESPESA"]).agg({"VALOR_PAGAMENTO":"sum"}).reset_index()
# Retornar maior valor pago a um credor agrupado por mês

# df.groupby(df["MES_PAGAMENTO"])["VALOR_PAGAMENTO"].max()

df.groupby(["MES_PAGAMENTO"]).agg({"VALOR_PAGAMENTO":"max"}).reset_index()
# Salvar dataframe em um arquivo CSV

df.to_csv('../data/pagamento_exercicio_2021_jan_a_jun_governo_pb.csv', index=False)
# Salvar dataframe no banco de dados

from sqlalchemy import create_engine

con = create_engine("mysql+pymysql://root:mysql@localhost:3307/db_governo_pb",
                        encoding="utf-8")
df.to_sql('tb_pagamento_exercicio_2021', con, index = False, if_exists = 'replace', method = 'multi', chunksize=10000)<jupyter_output><empty_output><jupyter_text>Gráficos para análise exploratória e/ou tomada de decisão<jupyter_code>import matplotlib.pyplot as plt
plt.style.use("seaborn")
# Gráfico com o total pago aos credores por mês (Janeiro a Junho)

df.groupby(df['MES_PAGAMENTO'])['VALOR_PAGAMENTO'].sum().plot.bar(title = 'Total Pago por Mês', color = 'blue')
plt.xlabel('MÊS')
plt.ylabel('RECEITA');
# Gráfico com o valor máximo pago a um credor por mês (Janeiro a Junho)

df.groupby(["MES_PAGAMENTO"]).agg({"VALOR_PAGAMENTO":"max"}).plot.bar(title = 'Maior valor pago a um credor po mês', color = 'green')
plt.xlabel('MÊS')
plt.ylabel('VALOR');
# Gráfico de linha exibindo a soma dos pagamentos a credores no decorrer dos meses

df.groupby(["MES_PAGAMENTO"]).agg({"VALOR_PAGAMENTO":"sum"}).plot(title = 'Total de pagamentos por mês aos credores')
plt.xlabel('MÊS')
plt.ylabel('TOTAL PAGO')
plt.legend();
# Gráfico com o valor pago a credores agrupados por tipo de despesa

df.groupby(["TIPO_DESPESA"]).agg({"VALOR_PAGAMENTO":"sum"}).plot.bar(title = 'Soma dos valores pagos por tipo de despesa', color = 'gray')
plt.xlabel('TIPO DE DESPESA')
plt.ylabel('VALOR');<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.14718719689621726, 'fraction_numerical': 0.024975751697381185, 'mean_word_length': 6.66728624535316, 'pattern_counts': {'":': 5, '<': 13, '<?xml version=': 0, '>': 13, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '3', 'dir': 'jupyter-structured-clean-dedup', 'id': '668596', 'license': 'MIT', 'n_tokens_mistral': 1792, 'n_tokens_neox': 1701, 'n_words': 319, 'path': 'notebooks/01-exploracao-dados.ipynb', 'repo_name': 'andersonnrc/projeto-bootcamp-carrefour-analise-dados', 'size': '4124'}