Skip to content
Tutoriais
Pandas
How to Create Histograms in Pandas: Step-by-Step Guide

Como Criar Histogramas no Pandas: Guia Passo-a-passo

A visualização de dados é um componente crítico da análise de dados. Ela nos permite entender conjuntos de dados complexos e extrair insights que podem não ser imediatamente aparentes nos dados brutos. Uma das ferramentas mais eficazes para visualização de dados é o histograma. Neste artigo, vamos mergulhar no mundo dos histogramas, focando especificamente na criação de histogramas usando a biblioteca Pandas do Python.

O Pandas, juntamente com outras bibliotecas do Python, como NumPy, Matplotlib e Seaborn, forma a base da visualização de dados em Python. Essas bibliotecas fornecem uma ampla gama de ferramentas e funcionalidades que facilitam a criação, personalização e interpretação de histogramas. Este artigo servirá como um guia abrangente para a criação de histogramas no Pandas, com exemplos práticos e dicas para evitar erros comuns.

Quer criar rapidamente Visualização de Dados a partir de um DataFrame do Pandas em Python sem código?

PyGWalker é uma biblioteca Python para Análise Exploratória de Dados com Visualização. O PyGWalker (opens in a new tab) pode simplificar sua análise de dados e fluxo de trabalho de visualização de dados no Jupyter Notebook, convertendo seu dataframe do pandas (e dataframe do polars) em uma Interface de Usuário no estilo Tableau para exploração visual.

PyGWalker para visualização de dados (opens in a new tab)

Entendendo Histogramas

Um histograma é uma representação gráfica de dados que organiza um grupo de pontos de dados em um intervalo especificado. Os dados são divididos em bins, e o número de pontos de dados que caem em cada bin é representado pela altura da barra. Histogramas são uma ferramenta essencial na análise de dados, pois fornecem uma interpretação visual de dados numéricos, indicando o número de pontos de dados que estão dentro de um intervalo de valores, conhecido como um bin.

Histogramas podem ser de vários tipos, cada um servindo a um propósito único. Os tipos mais comuns incluem o histograma de frequência, o histograma de frequência relativa, o histograma de frequência cumulativa e o histograma de densidade. Cada tipo fornece uma perspectiva diferente sobre os dados, permitindo que os analistas de dados obtenham insights específicos.

A interpretação de um histograma pode parecer intimidante no início, mas com prática, se torna algo natural. A chave é entender a forma da distribuição. Por exemplo, um histograma com um pico no meio e caudas em ambos os lados (em forma de sino) indica uma distribuição normal. Um histograma com uma cauda longa para a direita indica uma assimetria positiva, enquanto uma cauda longa para a esquerda indica uma assimetria negativa.

Criando um Histograma no Pandas

O Pandas é uma poderosa ferramenta de análise de dados construída sobre o Python. Ele fornece um objeto DataFrame flexível e eficiente, que é uma estrutura de dados rotulada bidimensional com colunas de tipos potencialmente diferentes. Com Pandas, criar um histograma é um processo simples.

Para criar um histograma no Pandas, você primeiro precisa importar as bibliotecas necessárias. Isso inclui Pandas para manipulação de dados e Matplotlib para visualização de dados. Uma vez que as bibliotecas são importadas, você pode usar a função hist() fornecida pelo Pandas para criar um histograma.

Aqui está um exemplo simples:

import pandas as pd
import matplotlib.pyplot as plt
 
# Crie um dataframe simples
data = {'Valores': [1, 2, 2, 3, 3, 3, 4, 4, 4, 4]}
df = pd.DataFrame(data)
 
# Crie um histograma
df['Valores'].hist(bins=4)
 
plt.show()

Neste exemplo, primeiro criamos um DataFrame simples com alguns valores. Em seguida, chamamos a função hist() na coluna 'Valores' do DataFrame, especificando o número de bins que queremos em nosso histograma. A função plt.show() é usada para exibir o histograma.

Embora criar histogramas no Pandas seja simples, existem erros comuns que as pessoas cometem. Um dos erros mais comuns é escolher o número errado de bins.

O número de bins em um histograma determina o nível de detalhe. Se o tamanho do bin for muito pequeno, o histograma será muito detalhado, tornando difícil identificar a forma geral dos dados. Por outro lado, se o tamanho do bin for muito grande, o histograma pode não fornecer detalhes suficientes, levando a uma simplificação excessiva dos dados. Portanto, escolher o tamanho certo do bin é crucial para criar um histograma eficaz.

Aprimorando Histogramas com Matplotlib e Seaborn

Embora o Pandas forneça a funcionalidade básica para criar histogramas, as bibliotecas Matplotlib e Seaborn podem ser usadas para aprimorar esses histogramas, tornando-os mais informativos e visualmente atraentes.

O Matplotlib é uma biblioteca poderosa para plotagem que fornece uma ampla gama de funcionalidades para criar gráficos estáticos, animados e interativos em Python. Ele oferece uma variedade de maneiras de personalizar histogramas, como alterar a cor, adicionar rótulos e ajustar o tamanho do bin.

O Seaborn, por outro lado, é uma biblioteca de visualização de dados estatísticos baseada no Matplotlib. Ele fornece uma interface de alto nível para criar gráficos atraentes, incluindo histogramas. Os histogramas do Seaborn também têm a opção de plotar uma estimativa de densidade, que pode fornecer uma representação mais suave da distribuição.

Aqui está um exemplo de como criar um histograma usando o Matplotlib e o Seaborn:

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
 
# Crie um dataframe simples
data = {'Valores': [1, 2, 2, 3, 3, 3, 4, 4, 4, 4]}
df = pd.DataFrame(data)
 
# Crie um histograma usando o Matplotlib
plt.hist(df['Valores'], bins=4, color='blue', edgecolor='black')
plt.title('Histograma usando o Matplotlib')
plt.xlabel('Valores')
plt.ylabel('Frequência')
plt.show()

Crie um histograma usando o Seaborn

sns.histplot(df['Values'], bins=4, color='green', kde=True) plt.title('Histograma usando o Seaborn') plt.xlabel('Valores') plt.ylabel('Frequência') plt.show()


Neste exemplo, primeiro criamos um histograma usando o Matplotlib, especificando a cor das barras e a cor da borda. Em seguida, criamos um histograma usando o Seaborn, especificando a cor das barras e adicionando uma estimativa de densidade (kde=True).

Embora o Matplotlib e o Seaborn ofereçam mais opções de personalização, é importante usar essas opções com sabedoria. Complicar demais um histograma pode tornar mais difícil a interpretação, desvirtuando o propósito da visualização de dados. Portanto, é crucial encontrar um equilíbrio entre personalização e simplicidade ao criar histogramas.

## Técnicas avançadas de histograma

À medida que você se familiariza mais com a criação de histogramas básicos, pode querer explorar algumas técnicas avançadas que podem fornecer insights adicionais sobre seus dados. Por exemplo, você pode criar histogramas empilhados, histogramas bidimensionais ou até mesmo histogramas tridimensionais.

Um histograma empilhado permite comparar dois ou mais conjuntos de dados. Isso pode ser particularmente útil quando você deseja ver como a distribuição de uma variável difere entre categorias. Em um histograma empilhado, as barras de diferentes categorias são colocadas umas sobre as outras.

Histogramas bidimensionais, por outro lado, permitem explorar a relação entre duas variáveis. Em vez de barras, um histograma bidimensional usa quadrados com cores codificadas, onde a intensidade da cor representa a frequência dos pontos de dados dentro de cada intervalo.

Histogramas tridimensionais levam isso um passo adiante, adicionando uma terceira dimensão. Isso pode ser útil ao lidar com conjuntos de dados complexos com múltiplas variáveis. No entanto, histogramas tridimensionais podem ser desafiadores de interpretar e devem ser usados com parcimônia.

Aqui está um exemplo de como criar um histograma empilhado usando o Pandas e o Matplotlib:

```python
import pandas as pd
import matplotlib.pyplot as plt

# Crie um dataframe simples
dados = {'Categoria1': [1, 2, 2, 3, 3, 3, 4, 4, 4, 4],
        'Categoria2': [2, 3, 3, 4, 4, 4, 5, 5, 5, 5]}
df = pd.DataFrame(dados)

# Crie um histograma empilhado
plt.hist([df['Categoria1'], df['Categoria2']], bins=4, stacked=True)
plt.title('Histograma Empilhado')
plt.xlabel('Valores')
plt.ylabel('Frequência')
plt.legend(['Categoria1', 'Categoria2'])
plt.show()

Neste exemplo, primeiro criamos um DataFrame com duas categorias. Em seguida, criamos um histograma empilhado passando uma lista das duas categorias para a função hist(). O argumento stacked=True indica que queremos um histograma empilhado.

Conclusão

A criação de histogramas é uma habilidade fundamental na análise e visualização de dados. Com as bibliotecas Pandas, Matplotlib e Seaborn do Python, você pode criar uma ampla variedade de histogramas, desde simples até avançados, para obter insights sobre seus dados. Lembre-se de que a chave para uma visualização de dados eficaz não é apenas criar gráficos visualmente atraentes, mas também garantir que esses gráficos representem com precisão os dados subjacentes e sejam fáceis de interpretar.

FAQs

1. O que é um histograma?

Um histograma é uma representação gráfica de dados que organiza um grupo de pontos de dados em um intervalo especificado. Os dados são divididos em bins, e o número de pontos de dados que caem em cada bin é representado pela altura da barra.

2. Como criar um histograma no Pandas?

Para criar um histograma no Pandas, primeiro você precisa importar as bibliotecas necessárias, que incluem o Pandas para manipulação de dados e o Matplotlib para visualização de dados. Depois de importar as bibliotecas, você pode usar a função hist() fornecida pelo Pandas para criar um histograma.

3. Quais são alguns erros comuns que as pessoas cometem ao criar histogramas?

Um dos erros mais comuns é escolher o número errado de bins. Se o tamanho do bin for muito pequeno, o histograma será muito detalhado, o que dificulta a identificação da forma geral dos dados. Por outro lado, se o tamanho do bin for muito grande, o histograma pode não fornecer detalhes suficientes, levando a uma simplificação excessiva dos dados.