Vamos explorar algumas das bibliotecas mais importantes para realizar análises de dados utilizando a linguagem Python. Vamos entender o que é uma biblioteca, para que serve cada uma das principais bibliotecas, suas funcionalidades, casos de uso e exemplos práticos.

Mas antes, vamos recapitular:

O que é Python?

Python é uma linguagem de programação amplamente utilizada hoje em dia para análise de dados e desenvolvimento de software. Por ser uma linguagem interpretada e de alto nível, Python permite automatizar tarefas, realizar análises complexas e desenvolver aplicações de forma rápida e prática.

Além disso, Python conta com uma vasta comunidade e grandes empresas que utilizam a linguagem, o que garante suporte constante e evolução contínua.

Torne-se um cientista de dados aprendendo tudo na prática!

O que é uma biblioteca?

Uma biblioteca nada mais é do que um conjunto de funções e métodos pré-construídos que nos permitem realizar tarefas específicas dentro de uma linguagem de programação.

No caso do Python, existem diversas bibliotecas focadas em análise de dados, machine learning, visualização de dados e muitas outras áreas. Essas bibliotecas funcionam como uma “caixa de ferramentas” que temos disponível para importar e utilizar em nossos scripts Python.

Algumas das principais vantagens de se utilizar bibliotecas são:

  • Produtividade: como as funções já estão prontas, não precisamos reinventar a roda e podemos focar em resolver o problema real da análise de dados.
  • Qualidade: como são bibliotecas amplamente utilizadas, os métodos costumam ser bem testados e confiáveis.
  • Comunidade: ao utilizar bibliotecas conhecidas, é mais fácil encontrar suporte e ajuda na comunidade.
  • Desempenho: por serem escritas em linguagens compiladas como C e C++, as bibliotecas tendem a ter um desempenho superior.

Sendo assim, invés de criarmos todas as funcionalidades do zero, podemos aproveitar o conhecimento e trabalho de toda a comunidade que está por trás destas bibliotecas.

Pandas

O Pandas é uma das bibliotecas mais populares do Ecossistema Python para análise de dados. Ele fornece estruturas de dados flexíveis e intuitivas para manipular e analisar dados com eficiência.

!https://smartplayer.scaleup.com.br/images/pandas.png

O Pandas é open-source e permite importar dados de vários formatos como CSV, JSON, SQL, Microsoft Excel e depois manipular esses dados de forma simples com suas estruturas de dados integradas, como Series e DataFrames.

Alguns dos principais recursos do Pandas:

  • Carregar e manipular diferentes formatos de dados;
  • Selecionar e acessar subconjuntos de dados;
  • Manipulação de dados faltantes;
  • Agregações e junções de grupos;
  • Mapeamentos e atribuições comuns.

Em resumo, o Pandas fornece uma maneira fácil de trabalhar com dados para análise exploratória e limpeza antes de aplicar algoritmos de Machine Learning.

Series e DataFrames

As duas principais estruturas de dados do Pandas são Series e DataFrames. Entender essas estruturas é essencial para trabalhar com a biblioteca.

Series

Um Series é uma estrutura de dados unidimensional que pode armazenar qualquer tipo de dados (inteiros, strings, floats, objetos Python, etc). É parecido com um array, com a diferença que podemos nomear os índices do Series.

Exemplo:

import pandas as pdnotas = pd.Series([8.5, 7.8, 9.0], index=["Matemática", "Física", "Química"]) print(notas)

Saída:

Matemática    8.5Física       7.8 Química       9.0dtype: float64

Podemos acessar valores do Series utilizando os rótulos dos índices ou as posições numéricas, como em arrays tradicionais do Python.

DataFrames

Um DataFrame é uma estrutura de dados bidimensional, ou seja, com linhas e colunas, podendo ser entendido como uma planilha ou tabela do Excel em código.

Exemplo:

import pandas as pddados = {  "nome":["João", "Márcia", "Pedro", "Júlia"],  "idade":[27, 32, 22, 25],   "cidade":["Rio de Janeiro", "Belo Horizonte", "São Paulo", "Porto Alegre"]  }df = pd.DataFrame(dados)print(df)

Saída:

   nome  idade               cidade0  João     27    Rio de Janeiro1 Márcia     32     Belo Horizonte   2 Pedro      22         São Paulo3 Júlia      25       Porto Alegre

O DataFrame permite indexação e seleção de colunas específicas, aplicação de funções, junção com outros DataFrames e muito mais. É a estrutura mais utilizada para análises de dados no Pandas.

Lendo e Escrevendo Dados

Uma das principais funcionalidades do Pandas é ler dados de diversas fontes e formatos, como CSV, TXT, Excel, SQL, JSON e outros.

Alguns exemplos:

Lendo CSV

df = pd.read_csv("dados.csv")

Lendo Excel

df = pd.read_excel("planilha.xlsx")

Lendo banco de dados SQL

df = pd.read_sql("SELECT * FROM clientes", conexao)

Do mesmo modo, o Pandas permite salvar DataFrames em diferentes formatos:

df.to_csv("saida.csv", index=False) df.to_excel("saida.xlsx", sheet_name="planilha")

Isso facilita muito o fluxo de importar dados, fazer análises e exportar resultados.

Seleção de Dados

Uma funcionalidade crucial do Pandas é selecionar subconjuntos específicos dos dados para análise. Isso é feito principalmente através da indexação e fatiamento de linhas e colunas.

Alguns exemplos:

# Selecionar coluna específica  df["coluna"]# Selecionar com condiçõesdf[df["coluna"] > 0]# Fatiar linhasdf[0:10] # Selecionar linhas e colunas específicas  df.loc[0:5, ["coluna1", "coluna2"]]

Essas são apenas algumas das diversas formas de selecionar e filtrar dados disponíveis no Pandas.

Agregações e Groupby

Operações de agregação e groupby são comumente utilizadas em análises de dados. O Pandas torna essas tarefas intuitivas e fáceis de usar.

Alguns exemplos de agregações:

# Média df["coluna"].mean()# Contagem de itensdf["coluna"].count()  # Valor máximodf["coluna"].max()# Desvio padrão  df["coluna"].std()

Já o groupby permite separar os dados em grupos e aplicar funções de agregação para cada grupo:

# Agrupar por coluna1 e tirar média de coluna2df.groupby("coluna1")["coluna2"].mean()

Isso permite obter insights poderosos sobre os dados.

Junção de DataFrames

Uma operação muito comum é a necessidade de juntar ou mesclar dois DataFrames, similar a um join de bancos de dados relacionais.

O Pandas provê vários métodos de mesclagem e junção intuitivos:

# Mesclagem simplesdf1.merge(df2)# Mesclagem nas colunas específicas  df1.merge(df2, on=["coluna1", "coluna2"])# Junção esquerda  df1.merge(df2, how="left")

Novamente, o Pandas abstrai o trabalho manual e repetitivo deixando a análise de dados mais produtiva.

Conclusão sobre o Pandas

O Pandas é uma biblioteca indispensável para análises de dados em Python pela sua capacidade de importar, manipular, transformar, agregar, junção e exportar dados de forma fácil e intuitiva.

Seu uso é disseminado entre cientistas e engenheiros de dados, analistas, e qualquer pessoa que precise trabalhar com dados. Portanto, dominar o Pandas é um requisito importante para qualquer profissional de dados hoje em dia.

Vale a pena investir tempo para aprender suas principais funcionalidades. A documentação do Pandas é um ótimo recurso que deve ser usado como referência constante.

NumPy

O NumPy é uma biblioteca fundamental para computação científica em Python, sendo muito utilizada em aplicações de análise de dados, machine learning e inteligência artificial.

!https://smartplayer.scaleup.com.br/images/numpy.png

O NumPy introduz o tipo de dado ndarray (n-dimensional array) que é um array multidimensional que permite representar matrizes e tensores que são estruturas centrais para análises matemáticas e estatísticas de dados.

Além disso, o NumPy possui diversas funcionalidades úteis:

  • Funções matemáticas para álgebra linear, geração de números aleatórios, transformadas de Fourier e muito mais
  • Broadcast de operações entre arrays de diferentes dimensões
  • Ferramentas para leitura e escrita em disco
  • Integração com outras bibliotecas como Pandas, SciPy, Matplotlib e TensorFlow

Em resumo, com o NumPy podemos executar cálculos numéricos de forma eficiente e com alto desempenho, sendo essencial para boa parte das análises de dados.

Ndarrays

O tipo de dado mais importante do NumPy é o ndarray. Ele permite representar arrays de N dimensões, onde cada dimensão pode ter um tamanho diferente.

Exemplos de criação manual de ndarrays:

import numpy as npvetor = np.array([1, 2, 3]) matriz = np.array([[1, 2, 3], [4, 5, 6]])  tensor3d = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])

Podemos especificar o tipo de dado durante a criação do ndarray:

inteiros = np.array([1, 2, 3], dtype=int)floats = np.array([1.5, 2.7, 3.9], dtype=float)

Também podemos modificar o formato (shape) de um array existente utilizando a função .reshape():

a = np.array([1, 2, 3, 4, 5, 6])  a.reshape((2, 3)) # transforma em matriz 2x3

Ndarrays são a estrutura central do NumPy e nos permitem representar dados matriciais de forma eficiente para computação científica.

Operações Elemento-a-Elemento

Uma grande vantagem do NumPy é a facilidade em fazer operações aplicadas elemento-a-elemento em arrays.

Por exemplo:

import numpy as npa = np.array([1, 2, 3, 4])b = np.array([10, 20, 30, 40])c = a + b # Resultado: array([11, 22, 33, 44]) d = b - a # Resultado: array([ 9, 18, 27, 36])

Isso economiza laços for explícitos, deixando o código mais limpo e eficiente.

Também podemos fazer operações elemento-a-elemento entre arrays e escalares:

a = np.array([1, 2, 3, 4])b = a * 2 # Multiplica cada elemento por 2            # Resultado: array([2, 4, 6, 8])

Essas operações aplicadas a arrays inteiros são extremamente rápidas e otimizadas no NumPy.

Transmissão de Funções

Outra funcionalidade poderosa do NumPy é a capacidade de transmitir funções, que consiste em aplicar uma função a cada elemento de um array, de forma vetorizada.

Por exemplo, podemos calcular o seno de cada elemento de um array utilizando a função sin() do NumPy:

import numpy as npangulos = np.array([0, np.pi/2, np.pi])  print(np.sin(angulos))# Resultado: # [0.         1.          1.22464680e-16]

Funções matemáticas comuns como seno, cosseno, logaritmo, exponencial e muitas outras podem ser aplicadas a arrays para processamento veloz e vetorizado de dados numéricos.

Matplotlib

O Matplotlib é a biblioteca mais popular do Python para visualização de dados e construção de gráficos 2D simples e completos.

!https://smartplayer.scaleup.com.br/images/matplotlib.png

Com o Matplotlib, podemos criar uma ampla variedade de plots, incluindo:

  • Gráficos de linhas
  • Gráficos de dispersão (scatter)
  • Histogramas
  • Gráficos de barras
  • Gráficos de pizza
  • Box plots
  • Mapas de calor

Além disso, o Matplotlib permite customizar cada aspecto visual do gráfico, desde cores, rótulos, títulos, escalas e muito mais.

Vamos ver alguns exemplos práticos.

Gráfico de Linhas

Um gráfico de linhas mostra a relação entre duas variáveis numéricas.

Exemplo:

import matplotlib.pyplot as pltx = [1, 2, 3, 4, 5]y = [2, 4, 6, 8, 10] plt.plot(x, y)plt.title("Gráfico de Linhas")plt.xlabel("Eixo X")plt.ylabel("Eixo Y")plt.show()

Saída:

!https://smartplayer.scaleup.com.br/images/linhas.png

Gráfico de Barras

Já o gráfico de barras exibe barras separadas para cada categoria.

Exemplo:

import matplotlib.pyplot as pltvalores = [10, 7, 13, 9, 15]frutas = ["Maçã", "Banana", "Pera", "Uva", "Laranja"]plt.bar(frutas, valores)plt.title("Produção de Frutas")plt.ylabel("Toneladas")plt.show()

Saída:

!https://smartplayer.scaleup.com.br/images/barras.png

Histogramas

Histogramas mostram a distribuição dos dados com barras agrupadas em bins (intervalos).

Exemplo:

import matplotlib.pyplot as pltidades = [18, 19, 21, 25, 26, 26, 30, 32, 38, 45]plt.hist(idades)plt.title("Histograma de Idades")plt.xlabel("Idade")plt.ylabel("Frequência")plt.show()

Saída:

!https://smartplayer.scaleup.com.br/images/histograma.png

Salvando Gráficos

Podemos salvar os gráficos gerados em arquivo utilizando o método savefig():

plt.savefig("grafico.png")

Conclusão

Aprendemos de forma detalhada as bibliotecas fundamentais para a análise de dados em Python, evidenciando a importância e versatilidade de cada uma. Aprendemos como o uso dessas bibliotecas são indispensáveis não apenas na manipulação e análise de grandes conjuntos de dados, mas também na visualização de dados de forma eficaz e na extração de insights.

Seja você um iniciante ou um profissional experiente, a compreensão dessas bibliotecas abre portas para um mundo de possibilidades na área de análise de dados utilizando Python!

Torne-se um cientista de dados aprendendo tudo na prática!