Skip to content

Append DataFrame Pandas: Como adicionar linhas e colunas como um profissional

Updated on

O Pandas, uma eficiente biblioteca Python de código aberto, é uma ferramenta indispensável para cientistas de dados em todo o mundo. Seu poder reside na flexibilidade e facilidade de manipulação de dados estruturados. O DataFrame, uma das estruturas fundamentais de dados do Pandas, é amplamente utilizado devido à sua capacidade de manipular grandes conjuntos de dados de forma eficiente.

Uma tarefa comum ao trabalhar com DataFrames do Pandas é a adição de dados. Essa operação pode envolver a adição de linhas, colunas ou até mesmo a adição de DataFrames inteiros. Pode parecer bastante desafiador no começo, mas assim que você dominar a função de anexação, será fácil. Então, vamos aprofundar em como podemos alavancar a função append do DataFrame no Pandas.

Quer criar rapidamente visualizações de dados do Python Pandas DataFrame sem código?

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

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

Função de anexação Pandas DataFrame

A função de anexação do Pandas DataFrame é usada para anexar linhas de outros objetos DataFrame e retorna um novo DataFrame. É essencial entender que esta função não altera o DataFrame original, mas cria um novo que combina os dados originais e os anexados.

Sintaxe da função Append no Pandas

A sintaxe básica para a função append() é a seguinte:

DataFrame.append(other, ignore_index=False, sort=False)
  • other: Isso pode ser um DataFrame, Series, dicionário ou lista desses, definindo os dados para adicionar.
  • ignore_index: Se True, o índice do DataFrame resultante será rotulado como 0, 1, …, n. O padrão é False.
  • sort: Isso define se deve-se classificar ou não o eixo de não concatenação. O padrão é False.

Vamos ver a função append em ação por meio de um exemplo.

Adicionar uma linha ao DataFrame

import pandas as pd
 
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2'],
                    'B': ['B0', 'B1', 'B2'],
                    'C': ['C0', 'C1', 'C2'],
                    'D': ['D0', 'D1', 'D2']},
                    index=[0, 1, 2])
 
df2 = pd.DataFrame({'A': 'A3',
                    'B': 'B3',
                    'C': 'C3',
                    'D': 'D3'},
                    index=[3])
 
df1 = df1.append(df2)
. Não traduza códigos que começam com import. Se houver uma frontmatter, traduza o conteúdo na frontmatter, não os parâmetros. Se houver um componente jsonld, certifique-se de traduzir o conteúdo json-ld também.
print(df1)

No exemplo acima, df1 é o DataFrame original e df2 é adicionado a ele. O DataFrame resultante incluirá todas as linhas de df1 e df2.

Adicionar Múltiplos DataFrames

Adicionar vários DataFrames também é um processo simples. A função append pode receber uma lista de DataFrames para concatená-los. Considere o seguinte exemplo:

df3 = pd.DataFrame({'A': 'A4',
                    'B': 'B4',
                    'C': 'C4',
                    'D': 'D4'},
                    index=[4])
 
df1 = df1.append([df2, df3])
 
print(df1)

Neste exemplo, estamos adicionando df2 e df3 ao df1 simultaneamente.

DataFrame Append vs Concat in Pandas

Pode haver dúvidas sobre a diferença entre as funções append() e concat() no Pandas, já que ambas parecem servir a um propósito semelhante. Embora append() seja basicamente um caso específico de concat(), a função concat() fornece mais flexibilidade, como a capacidade de adicionar dados ao longo do eixo de linhas (axis=0) ou eixo de colunas (axis=1). Essa funcionalidade mais ampla significa que concat() pode ser uma ferramenta mais poderosa para tarefas de manipulação de dados mais complexas. No entanto, para tarefas simples de concatenar, append() é muitas vezes mais do que suficiente.

Adicionando Coluna ao DataFrame Pandas

Adicionar uma coluna a um DataFrame pode ser alcançado simplesmente atribuindo dados a uma nova coluna no DataFrame. Por exemplo:

df1['E'] = ['E0', 'E1', 'E2', 'E3', 'E4']
print(df1)

Neste exemplo, uma nova coluna 'E' é adicionada ao df1. A nova coluna é inicializada com os valores 'E0', 'E1', 'E2', 'E3', 'E4'.

Adicionando Saída de um Loop em um DataFrame Python

Também é possível adicionar a saída de um loop a um DataFrame. Isso pode ser útil em cenários em que você está processando ou gerando dados em um loop. Vamos dar uma olhada em um exemplo:

df = pd.DataFrame(columns = ['A', 'B', 'C'])
 
for i in range(5):
    df = df.append({'A': i, 'B': i*2, 'C': i+3}, ignore_index=True)
 
print(df)

Neste exemplo, para cada iteração do loop, uma nova linha é criada e adicionada ao DataFrame df.

Melhores Práticas para Adicionar Linhas de DataFrame no Pandas

Embora a função append() seja uma ferramenta fácil de usar para adicionar dados a um DataFrame, nem sempre é a mais eficiente. Isso porque append() sempre retorna um novo DataFrame e, no caso de anexar linhas em um loop, isso pode levar a um consumo significativo de memória.

Em cenários onde você precisa adicionar um grande número de linhas, muitas vezes é mais eficiente criar uma lista das linhas e, em seguida, criar um DataFrame de uma só vez:

Não traduza o código que começa com import. Se houver um frontmatter, traduza o conteúdo no frontmatter, não os parâmetros. Se houver um componente jsonld, verifique se você traduziu o conteúdo json-ld também.

rows_list = []
for i in range(100000):
    dict1 = {'A': i, 'B': i*2, 'C': i+3}
    rows_list.append(dict1)
 
df = pd.DataFrame(rows_list)

Neste exemplo, o DataFrame é criado apenas uma vez, economizando memória e tempo de processamento.

Como Mesclar DataFrames do Pandas Usando Append()

Enquanto as funções merge() e join() foram especificamente designadas para mesclar ou juntar DataFrames, a função append() também pode realizar isso se os DataFrames tiverem as mesmas colunas:

df1 = df1.append(df2, ignore_index=True)

Neste exemplo, df2 é adicionado no final de df1, efetivamente mesclando os dois DataFrames.

Conclusão

Neste artigo, abordamos muito sobre como usar a função append() do Pandas para adicionar linhas e colunas a um DataFrame, como anexar vários DataFrames, como adicionar uma coluna e como anexar a saída de um loop for. Lembre-se de que, embora o append() seja conveniente e fácil de usar, em casos de grandes conjuntos de dados, outros métodos podem ser mais eficientes.

Perguntas Frequentes

  1. Para que é usada a função de anexação do Pandas DataFrame?

    A função de anexação do Pandas DataFrame é usada para anexar linhas de outros objetos de DataFrame ao final do DataFrame dado, retornando um novo objeto DataFrame. Ela não modifica o DataFrame original; em vez disso, ela cria um novo que inclui os dados originais e adicionados.

  2. É possível anexar vários DataFrames usando append()?

    Sim, é possível anexar vários DataFrames usando a função append(). Ela pode receber uma lista de DataFrames para anexar juntos.

  3. É recomendado usar o método append() para adicionar dados a um DataFrame?

    Embora a função append() seja fácil de usar e adequada para muitos casos, para grandes DataFrames, pode não ser o método mais eficiente porque sempre retorna um novo DataFrame. Em vez disso, considere criar uma lista de linhas ou colunas e, em seguida, converter essa lista em um DataFrame de uma só vez.