Python, pandas e resolvendo três problemas do mundo do Excel

O Excel é uma ferramenta de análise de dados extremamente comum. É fácil aprender a trabalhar com ele, em quase todos os computadores, e quem o domina pode resolver problemas bastante complexos. O Python é frequentemente considerado uma ferramenta cujos recursos são quase ilimitados, mas mais difíceis de dominar do que o Excel. O autor do material, cuja tradução publicamos hoje, quer falar sobre a solução usando Python das três tarefas que normalmente são resolvidas no Excel. Este artigo é uma introdução ao Python para quem conhece bem o Excel.



Carregamento de dados


Vamos começar importando a biblioteca Python pandase carregando dados nos quadros de dados armazenados nas planilhas salese statespastas de trabalho do Excel. Daremos os mesmos nomes aos quadros de dados correspondentes.

import pandas as pd
sales = pd.read_excel('https://github.com/datagy/mediumdata/raw/master/pythonexcel.xlsx', sheet_name = 'sales')
states = pd.read_excel('https://github.com/datagy/mediumdata/raw/master/pythonexcel.xlsx', sheet_name = 'states')

Agora vamos usar o método do .head()quadro de dados salespara exibir os elementos no início do quadro de dados:

print(sales.head())

Compare o que será exibido com o que você pode ver no Excel.


Comparação da aparência da saída de dados no Excel com a aparência da saída de dados do quadro de dados do pandas

Aqui você pode ver que os resultados da visualização de dados do quadro de dados são muito semelhantes aos que você pode ver no Excel. Mas existem algumas diferenças muito importantes:

  • A numeração das linhas no Excel começa em 1 e, nos pandas, o número (índice) da primeira linha é 0.
  • No Excel, as colunas têm letras que começam com uma letra Ae, nos pandas, os nomes das colunas correspondem aos nomes das variáveis ​​correspondentes.

Continuaremos a estudar as possibilidades dos pandas que nos permitem resolver problemas que geralmente são resolvidos no Excel.

Implementando a funcionalidade Excel IF do Excel em Python


O Excel possui uma função muito conveniente IFque permite, por exemplo, gravar algo em uma célula, com base na verificação do que está em outra célula. Suponha que você deseje criar uma nova coluna no Excel, cujas células nos informarão se os valores nas células correspondentes na coluna excederem 500 B. No Excel, Evocê pode atribuir um cabeçalho a uma coluna (no nosso caso, uma coluna ) MoreThan500escrevendo o texto correspondente na célula E1. Depois disso, na célula E2, você pode inserir o seguinte:

=IF([@Sales]>500, "Yes", "No")


Usando a função SE no Excel

Para fazer o mesmo com os pandas, você pode usar a compreensão da lista:

sales['MoreThan500'] = ['Yes' if x > 500 else 'No' for x in sales['Sales']]


Inclusões de lista no Python: se o valor atual for maior que 500, Sim será incluído na lista; caso contrário, as

inclusões de Lista não serão uma excelente ferramenta para resolver esses problemas, o que simplifica o código, reduzindo a necessidade de construções complexas como if / else. O mesmo problema pode ser resolvido com if / else, mas a abordagem proposta economiza tempo e torna o código um pouco mais limpo. Detalhes sobre a inclusão da lista podem ser encontrados aqui .

Implementando a funcionalidade VLOOKUP Excel em Python


Em nosso conjunto de dados, em uma das planilhas do Excel, existem nomes de cidades e, por outro, nomes de estados e províncias. Como descobrir exatamente onde cada cidade está localizada? Uma função do Excel é adequada para isso VLOOKUP, com a qual você pode vincular os dados de duas tabelas. Essa função funciona com o princípio de junção esquerda, quando cada registro do conjunto de dados localizado no lado esquerdo da expressão é salvo. Usando a função VLOOKUP, sugerimos que o sistema procure um valor específico em uma determinada coluna de uma planilha especificada e, em seguida, retorne um valor que seja um número especificado de colunas à direita do valor encontrado. Aqui está o que parece:

=VLOOKUP([@City],states,2,false)

Definimos o salescabeçalho da coluna na planilha Fao Stateusar a função VLOOKUPpara preencher as células dessa coluna com os nomes dos estados e províncias nas quais as cidades estão localizadas.


Usando a função VLOOKUP no Excel

No Python, você pode fazer o mesmo usando o métodomergepandas. É preciso dois quadros de dados e os combina. Para resolver esse problema, precisamos do seguinte código:

sales = pd.merge(sales, states, how='left', on='City')

Vamos analisá-lo:

  1. O primeiro argumento para o método mergeé o quadro de dados original.
  2. O segundo argumento é o quadro de dados no qual estamos procurando valores.
  3. O argumento howindica exatamente como queremos unir os dados.
  4. O argumento onaponta para a variável pela qual a conexão deve ser executada (aqui você ainda pode usar os argumentos left_one right_on, se necessário, se os dados de interesse para nós em diferentes quadros de dados tiverem nomes diferentes).

Tabelas de resumo


Tabelas dinâmicas é um dos recursos mais poderosos do Excel. Essas tabelas permitem extrair rapidamente informações valiosas de grandes conjuntos de dados. Crie uma Tabela Dinâmica do Excel que exiba informações sobre o total de vendas de cada cidade.


Criando uma tabela dinâmica no Excel

Como você pode ver, para criar uma tabela desse tipo, basta arrastar o campoCitypara a seçãoRowse o campoSalespara a seçãoValues. Depois disso, o Excel exibirá automaticamente o total de vendas para cada cidade.

Para criar a mesma tabela dinâmica no pandas, você precisará escrever o seguinte código:

sales.pivot_table(index = 'City', values = 'Sales', aggfunc = 'sum')

Vamos analisá-lo:

  1. Aqui usamos um método sales.pivot_table, dizendo aos pandas que queremos criar uma tabela dinâmica com base em um quadro de dados sales.
  2. O argumento indexaponta para a coluna pela qual queremos agregar os dados.
  3. O argumento valuesindica quais valores vamos agregar.
  4. O argumento aggfuncespecifica a função que queremos usar no processamento de valores (aqui você ainda pode usar as funções mean, max, mine assim por diante).

Sumário


Com este material, você aprendeu sobre como importar dados do Excel para pandas, como implementar os recursos das funções do Excel IFe das ferramentas do Python.VLOOKUP, além de como reproduzir a funcionalidade das tabelas dinâmicas do Excel usando pandas. Talvez agora você esteja se perguntando por que deveria usar pandas se pode fazer o mesmo no Excel. Não há uma resposta única para esta pergunta. O Python permite criar código que pode ser ajustado e pesquisado profundamente. Esse código pode ser reutilizado. Python pode descrever esquemas de análise de dados muito complexos. E os recursos do Excel provavelmente são suficientes apenas para pesquisas de dados em menor escala. Se você só usou o Excel até agora, recomendo que você experimente Python e pandas e descubra o que pode fazer.

Quais ferramentas você usa para analisar dados?

, , iPhone. , .


All Articles