Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Diferença entre: concat e append

Na linha de código abaixo pensei imediatamente na função append e não a concat. Qual seria a diferença entre elas?

for item in moedas:
  df = pd.concat([df, moedas[item].value_counts()], axis = 1)
df
2 respostas
solução!

Olá, Bruno! Tudo bem com você?

Tanto o método concat quanto o método append são utilizados na biblioteca Pandas para combinar dados em objetos DataFrame ou Series, mas existem diferenças importantes entre os dois métodos.

O método concat é usado para combinar objetos DataFrame ou Series ao longo de um eixo específico. Ele pode ser usado para combinar duas ou mais tabelas, adicionando linhas ou colunas. A sintaxe básica do método concat é a seguinte:

pd.concat([df1, df2, ...], axis=0/1)

onde df1, df2, ... são os objetos DataFrame ou Series que você deseja combinar, e axis indica o eixo ao longo do qual a combinação deve ser feita (0 para combinar linhas, 1 para combinar colunas). Aqui está um exemplo simples de como usar o método concat para combinar duas tabelas ao longo do eixo 0 (ou seja, adicionar linhas):

import pandas as pd

df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],
                    'B': ['B0', 'B1', 'B2', 'B3'],
                    'C': ['C0', 'C1', 'C2', 'C3'],
                    'D': ['D0', 'D1', 'D2', 'D3']})

df2 = pd.DataFrame({'A': ['A4', 'A5', 'A6', 'A7'],
                    'B': ['B4', 'B5', 'B6', 'B7'],
                    'C': ['C4', 'C5', 'C6', 'C7'],
                    'D': ['D4', 'D5', 'D6', 'D7']})

result = pd.concat([df1, df2])
print(result)

O método append, por outro lado, é usado para adicionar linhas a um objeto DataFrame. Ele funciona de forma semelhante ao método concat com axis=0, mas é mais simples e direto.

df.append(other)

onde df é o objeto DataFrame ao qual você deseja adicionar linhas, e other é um objeto DataFrame ou Series contendo as linhas a serem adicionadas.

import pandas as pd

df = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],
                   'B': ['B0', 'B1', 'B2', 'B3'],
                   'C': ['C0', 'C1', 'C2', 'C3'],
                   'D': ['D0', 'D1', 'D2', 'D3']})

new_row = {'A': 'A4', 'B': 'B4', 'C': 'C4', 'D': 'D4'}
result = df.append(new_row, ignore_index=True)
print(result)

Em resumo, o método concat é usado para combinar dois ou mais objetos DataFrame ou Series ao longo de um eixo específico (linhas ou colunas), enquanto o método append é usado para adicionar linhas a um objeto DataFrame existente. Em geral, se você estiver trabalhando com duas ou mais tabelas que deseja combinar, use o método concat. Se você estiver adicionando linhas a um DataFrame existente, use o método append. No entanto, lembre-se de que o método concat também pode ser usado para adicionar linhas, desde que você especifique o eixo correto (0).

Obs: Ao executarmos o método append recebemos a seguinte mensagem:

FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead. result = df.append(new_row, ignore_index=True)

Esse aviso de FutureWarning é emitido porque o método append da biblioteca Pandas está sendo descontinuado e será removido em versões futuras do Pandas. Em vez disso, a documentação do Pandas recomenda o uso do métodoconcat para combinar objetos DataFrame e Series.

Essa era uma dúvida que eu tinha. Obrigada Bruno pela explicação!