Skip to content

Entendendo os índices do Pandas DataFrame: Um Guia para Iniciantes

Updated on

Como cientista de dados, você provavelmente já está familiarizado com a biblioteca Pandas para Python, que é uma das ferramentas de análise de dados mais populares em uso atualmente. O Pandas fornece uma série de recursos para trabalhar com dados estruturados, incluindo estruturas de dados poderosas como DataFrames e Series.

Neste tutorial, vamos nos concentrar em um aspecto fundamental de trabalhar com Pandas DataFrames: os índices. Vamos cobrir o que são os índices, por que são importantes e como trabalhar com eles de forma eficaz.

Quer criar rapidamente visualização de dados a partir do Pandas Dataframe com nenhum código?

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

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

O que são os índices do DataFrame?

Vamos começar com o básico: o que exatamente é um índice do DataFrame? Em seu nível mais básico, o índice é uma forma de rotular as linhas e colunas em um Pandas DataFrame.

Pense nisso como uma tabela do banco de dados com uma chave primária - o índice é essencialmente um conjunto de identificadores exclusivos que fornecem uma forma rápida e eficiente de acessar linhas específicas de dados. Também vale ressaltar que o índice pode ser numérico ou não numérico (por exemplo, valores de data/hora).

O índice é uma parte integral do DataFrame e é usado extensivamente em muitas operações Pandas, incluindo indexação, seleção e filtragem.

Configurando índices para DataFrame

Por padrão, os Pandas DataFrames têm um índice numérico que começa em 0 e vai até o número total de linhas no DataFrame. No entanto, você pode definir o índice para qualquer outra coluna no DataFrame se fizer mais sentido para o seu caso de uso.

Por exemplo, se você tiver um DataFrame contendo dados de vendas para regiões diferentes, talvez queira definir o índice para a coluna 'região' para facilitar a filtragem e a seleção de dados para regiões específicas.

Para definir o índice de um DataFrame, você pode usar o método set_index(). Por exemplo, se você tiver um DataFrame chamado dados_de_vendas e quiser definir o índice para a coluna 'região', você pode usar o seguinte código:

dados_de_vendas = dados_de_vendas.set_index('região')

Você também pode definir o índice ao criar um DataFrame do zero, usando o parâmetro index. Por exemplo, se você quiser criar um DataFrame de dados de vendas com um índice não numérico de datas, pode usar o seguinte código:

import pandas as pd
 
dados_de_vendas = pd.DataFrame({
    'data': ['2022-01-01', '2022-01-02', '2022-01-03'],
    'vendas': [100, 200, 150]
}, index=['2022-01-01', '2022-01-02', '2022-01-03'])

Trabalhando com Índices do DataFrame

Depois de definir o índice do seu DataFrame, você pode começar a usá-lo para filtrar e selecionar dados. Uma das operações mais comuns é a indexação.Selecionando uma linha específica com base no valor do índice.

Para selecionar uma linha pelo seu índice, você pode usar o método loc[]. Por exemplo, se você tiver um DataFrame chamado sales_data com a coluna 'region' definida como o índice e quiser selecionar todos os dados de vendas para a região "Nordeste", você pode usar o seguinte código:

northeast_sales = sales_data.loc['Nordeste']

Você também pode usar o índice para filtrar o DataFrame com base em critérios específicos. Por exemplo, se você quiser filtrar o DataFrame para incluir apenas dados de vendas para as regiões "Nordeste" e "Oeste", você pode usar o seguinte código:

northeast_west_sales = sales_data.loc[['Nordeste', 'Oeste']]

Índices de vários níveis

Em alguns casos, você pode precisar usar mais de um índice para o DataFrame. Isso é chamado de índice de vários níveis e permite que você organize seus dados hierarquicamente.

Por exemplo, se você tiver dados de vendas para várias regiões ao longo de vários anos, poderá usar um índice de vários níveis com a coluna 'region' como o primeiro nível e a coluna 'year' como o segundo nível.

Para criar um DataFrame com um índice de vários níveis, você pode usar o método set_index() várias vezes. Por exemplo, se você tiver um DataFrame chamado sales_data com as seguintes colunas: 'region', 'year' e 'sales', poderá criar um índice de vários níveis com o seguinte código:

sales_data = sales_data.set_index(['region', 'year'])

Depois de ter um DataFrame com um índice de vários níveis, você pode usar o método loc[] para selecionar dados com base em ambos os níveis do índice. Por exemplo, se você quiser selecionar todos os dados de vendas para a região "Nordeste" em 2022, poderá usar o seguinte código:

northeast_2022_sales = sales_data.loc[('Nordeste', 2022)]

Personalizando índices DataFrame

Em alguns casos, os índices numéricos ou baseados em colunas padrão podem não ser o melhor ajuste para seus dados. Felizmente, o Pandas fornece uma variedade de opções para personalizar índices.

Por exemplo, você pode querer criar um índice não numérico com base em uma função ou fórmula personalizada. Para fazer isso, você pode usar o método Index.map() ou Index.from_tuples().

import pandas as pd
 
# criar um DataFrame com um índice personalizado
data = pd.DataFrame({
    'x': [1, 2, 3],
    'y': [4, 5, 6]
}, index=[1, 4, 7])
 
# criar um índice personalizado usando uma fórmula
custom_index = data.index.map(lambda x: x * 10)
 
# usar o índice personalizado para criar um novo DataFrame
new_data = pd.DataFrame({
    'x': [4, 5],
    'y': [7, 8]
}, index=[40, 50])

Conclusão

Neste tutorial, abordamos o básico dos índices do Pandas DataFrame e como trabalhar com eles de forma eficaz. Exploramos a definição de índices, a seleção de dados usando índices (incluindo índices de vários níveis) e a personalização de índices para se ajustar aos seus dados.

Com o conhecimento adquirido neste tutorial, é possível otimizar sua análise e visualização de dados usando índices de DataFrame do Pandas. Esperamos que este tutorial tenha sido útil e, se você tiver alguma dúvida ou comentário, não hesite em entrar em contato!

Perguntas Frequentes

  1. O que são índices de um DataFrame?

    Os índices de um DataFrame no pandas são rótulos que identificam exclusivamente cada linha. Eles são usados para acessar, manipular e realizar operações nos dados. Por padrão, um DataFrame possui índices numéricos começando em 0, mas também é possível ter índices personalizados com base em colunas específicas ou outros critérios.

  2. Quantos índices um DataFrame pode ter?

    Um DataFrame no pandas pode ter múltiplos índices, também conhecidos como índices hierárquicos ou índices de várias camadas. Isso permite que cada linha seja identificada de forma exclusiva usando combinações complexas de rótulos ou níveis. O número de índices que um DataFrame pode ter não é fixo e pode variar dependendo dos dados e requisitos específicos.

  3. Como adicionar índices a um DataFrame?

    No pandas, é possível adicionar índices a um DataFrame usando o método set_index(). Esse método permite especificar uma ou mais colunas do DataFrame como novos índices. Além disso, é possível usar o método reset_index() para remover o índice atual e redefinir para um índice numérico padrão. Esses métodos permitem gerenciar e manipular os índices de um DataFrame de forma flexível.