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 pandas
e carregando dados nos quadros de dados armazenados nas planilhas sales
e states
pastas 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 sales
para 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 pandasAqui 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
A
e, 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 IF
que 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, E
você pode atribuir um cabeçalho a uma coluna (no nosso caso, uma coluna ) MoreThan500
escrevendo 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 ExcelPara 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, asinclusõ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 sales
cabeçalho da coluna na planilha F
ao State
usar a função VLOOKUP
para 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 ExcelNo Python, você pode fazer o mesmo usando o métodomerge
pandas. É 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:- O primeiro argumento para o método
merge
é o quadro de dados original. - O segundo argumento é o quadro de dados no qual estamos procurando valores.
- O argumento
how
indica exatamente como queremos unir os dados. - O argumento
on
aponta para a variável pela qual a conexão deve ser executada (aqui você ainda pode usar os argumentos left_on
e 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 ExcelComo você pode ver, para criar uma tabela desse tipo, basta arrastar o campoCity
para a seçãoRows
e o campoSales
para 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:- 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
. - O argumento
index
aponta para a coluna pela qual queremos agregar os dados. - O argumento
values
indica quais valores vamos agregar. - O argumento
aggfunc
especifica a função que queremos usar no processamento de valores (aqui você ainda pode usar as funções mean
, max
, min
e 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 IF
e 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. , .
