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
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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!