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
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
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!