Boa noite, pessoal. Senta que lá vem textão.
-Agradecimento:
Sou membro da Bastter há uns 3 anos e é impressionante o quanto essa comunidade, já impactou positivamente na minha vida.
Desde que entrei foram diversos insights, dicas, razões, motivações e maneiras para:
me tornar uma pessoa ativa e saudável (hoje faço natação e corrida); aportar meu dinheiro com mais segurança; fugir de rolo; fugir do que gera stress (grupo do condomínio por exemplo); gastar dinheiro sem sofrer quando o retorno é positivo (saúde, viagem, familia, conforto, tempo etc.); valorizar meu tempo com coisas que importam; retomar o hábito da leitura; e investir em mim. Já fiz uma pós e, mais recentemente, estou aprendendo Python.
E é sobre Python que eu queria falar um pouco. Vale um agradecimento especial ao Thiago que tem montado um baita material sobre o assunto aqui na Bastter.
Só tinha noções básicas de C++ até ano passado quando o Thiago iniciou os posts e fui acompanhando, até que ele lançou o desafio do jogo da velha e fui me aventurar. Com as aulas iniciais abordando um pouco de sintaxe, laços e variáveis já consegui fazer o joguinho (com muuuuito mais linhas de código que o necessário e com muito menos features que o possível, mas rodava kkkkk). E fui me aprofundando, com o material daqui e de outro lugares (uma coisa que o Thiago disse e que eu já confirmei é que tem muito material grátis, que a comunidade é muito ativa e a galera se ajuda).
-Aplicação (case)
Semana passada encasquetei com um corno-job que um colega meu faz toda semana e que eu vou herdar num ORUTUF próximo. O trabalho é receber os planos semanais de 25 polos da empresa, consolidar, analisar, montar um relatório e divulgar. Tem até sua nobreza e inteligência o trabalho, mas é MUITO CHATO consolidar. As planilhas são enormes e só pra abrir cada uma no excel são uns 2-3 minutos. No fim a consolidação leva umas 2 horas.
Sabendo não muito mais que o básico de python, mas com um noção legal de sintaxe e lógica que peguei muito daqui da Bastter fui passo a passo criando o código. E cada passo, desde o embrião, vinha com uma googlada:
"como ler excel com python", "como filtrar com pandas (biblioteca do python)", (obs aos dev's, no fim usei pandas só pra tratar os dados e os dataframes, pq minhas planilhas estão em xlsb, formato que o pandas nao lê, acabei usando a pyxlsb - open_workbook), "como remover colunas vazias", "como empilhar os arquivos lidos", "como escrever um xlsx com python" etc. etc. etc. sem falar os 1000 códigos de erro que eu "consegui" gerar e jogava no google pra resolver kkkkk.
Ao longo dessas googladas, fui ficando animado, pq tudo que eu procurava, eu achava em vários lugares e com várias formas de fazer. E esse processo é animador, pq vc vai tentando, vai esbarrando, vai errando, vai arrumando, vai contornando, vai fazendo gambiarra, vai testando umas linhas de código que um cara da Indonésia mandou num fórum X no seu código e descobre que elas funcionam (mesmo sem vc saber o que elas fazem)
E aí mano, é que a mágica acontece. Vc tá APRENDENDO e AGREGANDO VALOR pras coisas. E a hora que o bagulho funciona, é MUITO DA HORA.
No fim meu programinha de umas 100 linhas de código (da pra fazer em 20, acho) consolidou tudo em 126,859943151474 segundos (infos do python rs).
Tem alguns podcasts legais sobre aplicações de python no spotfy, pra quem quer ver se é a sua praia.
E peguei a recomendação de alguns livros que são repetidamente citados e que, apesar de eu ainda nao ter lido, estão na minha lista e vou colocar aqui: python para desenvolvedores, pense em python e python fluente.
-Dúvida
Fiquei com dúvida em umas linhas que estou usando. Seguem no anexo o trecho que uso para ler os arquivos e armazena-los em um data frame.
Não entendi duas coisas: o que está dentro do df.append e dentro do pd.Dataframe. Eu entendo o que elas fazem, mas nao entendi o preenchimento dos argumentos.
Achei meio confuso aquele "item.v", o uso do "for" no append e no dataframe aquele "df[1:], columns=df[0]", piorou (n etendi nem o 1: nem o columns=df[0]). Tentei reproduzir a ação de um jeito meu que eu entendesse mas sem sucesso, só funcionou assim.
Se alguem souber e puder dar uma clareada, agradeço.
Se esse programinha for útil para alguém ou se alguém quiser trocar uma idaia a respeito, podem mandar uma msg.
Abraços, amigos.
while (cont<19): #laço para ler e escrever todos os PPC's
df=[] #declarando a matriz que receberá as tabelas do excel
with open_workbook('C:/Users/x/Downloads/PPC_Semana_28/'+lista_PPC[cont], debug=False) as wb: #lendo os PPC's recebidos
with wb.get_sheet('Planejamento') as sheet: #filtrando a aba
for row in sheet.rows(): #lendo todas as linhas
df.append([item.v for item in row]) #atribuindo as linhas lidas ao data frame
df = pd.DataFrame(df[1:], columns=df[0]) #escreve no dataframe, mas nao entendi direito como