Last active
March 7, 2020 01:44
-
-
Save p-freire/d7314b74c5db9d0e4b3256cd29f70377 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#------------------------------------------------------------------------------------------------------- | |
# Código feito para consolidar as informações dos extratos | |
# mensais do CEI. Para rodar o script: | |
# 1) Baixe todos os extratos do ano e coloque na mesma pasta que estiver esse script. | |
# 2) Rode o script na pasta. | |
# 3) Verifique a saída no arquivo chamado "cei_consolidado.csv", que vai estar dentro da mesma pasta. | |
# | |
# Autor: Paulo Freire | |
# Data: 2020-03-05 | |
#------------------------------------------------------------------------------------------------------- | |
import pandas as pd | |
import os | |
import fnmatch | |
# Remove colunas desnecessárias | |
def read_clean_dataframe(file, idx): | |
df = pd.read_excel(file, header = idx_to_read) | |
cols_to_drop = [x for x in df.columns if fnmatch.fnmatch(x, "*Unnamed*")] | |
return df.drop(columns = cols_to_drop).dropna(axis = 0).dropna(axis = 1) | |
# Pega os arquivos dos extratos mensais | |
files = [] | |
for file in sorted(os.listdir(os.getcwd())): | |
if file.endswith(".xls"): | |
files.append(file) | |
# Cria primeiro dataframe, que vai servir de base para os outros | |
df = pd.read_excel(files[0]) | |
for col in df.columns: | |
aux = df.loc[df[col] == "PROVENTOS EM DINHEIRO - CREDITADOS"] | |
if aux.shape[0]: | |
idx_to_read = aux.index[0] + 2 | |
df = read_clean_dataframe(files[0], idx_to_read) | |
# Repete o racional, iterando para o resto da lista | |
for file in files[1:]: | |
df_tmp = pd.read_excel(file) | |
for col in df_tmp.columns: | |
aux = df_tmp.loc[df_tmp[col] == "PROVENTOS EM DINHEIRO - CREDITADOS"] | |
if aux.shape[0]: | |
idx_to_read = aux.index[0] + 2 | |
# Faz o concat com o dataframe de base | |
df_tmp = read_clean_dataframe(file, idx_to_read) | |
df = pd.concat([df, df_tmp]) | |
# Salva arquivo | |
df.groupby(["Ativo", "Especif."]).sum().reset_index().rename(columns = {"Creditado No Mês" : "Total recebido"}).to_csv("cei_consolidado.csv", index = False, encoding = "utf-8-sig") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment