Como usar a função join do pandas?
Combinando Dados no pandas com merge(), .join() e concat()
por Kyle Stratis
Introdução
O pandas é uma biblioteca poderosa para explorar e analisar dados no Python. Uma das suas funcionalidades mais importantes é a capacidade de combinar datasets separados. Com as ferramentas merge(), join() e concat(), você pode unificar e compreender melhor os seus dados enquanto analisa-os.
Neste tutorial, você aprenderá como e quando combinar os seus dados no pandas usando as seguintes técnicas:
- merge() para combinar dados em colunas ou índices comuns
- join() para combinar dados em uma coluna ou índice-chave
- concat() para combinar DataFrames em linhas ou colunas
pandas merge(): Combinando Dados em Colunas ou Índices Comuns
A primeira técnica que você aprenderá é a merge(). Ela é útil quando você deseja combinar colunas ou índices comuns de dois ou mais DataFrames. A função merge() é similar às operações de junção (join) em bancos de dados relacionais.
Para usar a merge(), você precisa especificar as colunas ou índices comuns em que você deseja combinar os dados. As combinações podem ser do tipo um-para-um, muitos-para-um ou muitos-para-muitos, dependendo de quais dados você está combinando e da estrutura dos seus DataFrames.
A função merge() oferece muitas opções de personalização para que você possa controlar exatamente como os dados serão combinados.
Como usar merge()
A função merge() é chamada a partir de um DataFrame e recebe outro DataFrame como argumento. Veja um exemplo básico:
Neste exemplo, df1 e df2 são DataFrames com colunas ‘A’ e ‘B’. A função merge() é chamada a partir de df1 e recebe df2 como argumento. A chave de junção é especificada pela opção on=‘A’, ou seja, os dados serão combinados com base nos valores da coluna ‘A’.
Exemplos
Vamos ver agora alguns exemplos práticos para entender melhor como usar a função merge().
Exemplo 1 - Merge de DataFrames com uma chave de junção
Neste exemplo, temos dois DataFrames: df1 e df2. Ambos têm a coluna ‘A’, que será usada como chave de junção. Portanto, os dados serão combinados com base nos valores da coluna ‘A’. O resultado será:
Observe que somente as linhas onde os valores da coluna ‘A’ são iguais em df1 e df2 são mantidas no resultado.
Exemplo 2 - Merge de DataFrames com várias chaves de junção
Neste exemplo, temos dois DataFrames: df1 e df2. Ambos têm as colunas ‘A’, ‘B’ e ‘C’, e as colunas ‘A’ e ‘B’ serão usadas como chave de junção. O resultado será:
Observe que somente as linhas onde os valores das colunas ‘A’ e ‘B’ são iguais em df1 e df2 são mantidas no resultado. As colunas ‘C’ de cada DataFrame são renomeadas no resultado para evitar ambiguidade.
pandas join(): Combinando Dados em uma Coluna ou Índice
A segunda técnica que você aprenderá é a join(). Ela é útil quando você deseja combinar DataFrames com base em uma coluna ou índice-chave. A join() é uma abordagem simplificada em relação ao merge(), que é mais flexível, permitindo combinações mais complexas.
Como usar join()
A função join() é chamada a partir de um DataFrame e recebe outro DataFrame como argumento. A coluna ou índice-chave para a junção é especificada usando a opção on=‘key_column’. Veja um exemplo básico:
Neste exemplo, df1 é o DataFrame inicial e df2 é o DataFrame que será combinado com df1. A opção on=‘A’ especifica que a coluna de junção é a coluna ‘A’. O resultado será:
Observe que a combinação é feita com base nos valores da coluna ‘A’ em df1 e nos índices em df2. As linhas onde os valores de ‘A’ e os índices coincidem são combinadas.
Exemplos
Vamos ver agora alguns exemplos práticos para entender melhor como usar a função join().
Exemplo 1 - Join de DataFrames com uma coluna de junção
Neste exemplo, temos dois DataFrames: df1 e df2. O DataFrame df1 tem a coluna ‘A’ e o DataFrame df2 tem a coluna ‘C’. Desejamos combinar os DataFrames com base na coluna ‘A’. O resultado será:
Observe que a linha com o valor 1 em df1 não tem correspondência em df2, por isso o valor em ‘C’ é NaN. As outras linhas são combinadas com base nos valores em ‘A’.
Exemplo 2 - Join de DataFrames com índices de junção
Neste exemplo, novamente temos dois DataFrames: df1 e df2. No entanto, agora ambos têm um índice numérico em vez de uma coluna de junção. O DataFrame df1 tem o índice [1, 2, 3] e o DataFrame df2 tem o índice [2, 3, 4]. Especificamos que queremos combinar os DataFrames com base no índice ‘A’. O resultado será:
Observe que, neste caso, nenhuma das linhas é combinada, pois os valores em ‘A’ não correspondem aos índices em df2.
pandas concat(): Combinando DataFrames em Linhas ou Colunas
A terceira técnica que você aprenderá é a concat(). Ela é útil quando você deseja combinar DataFrames em linhas ou colunas. A concat() é mais simples que a merge() e a join(), pois não requer uma chave de junção e realiza a combinação simplesmente empilhando os DataFrames.
Como usar concat()
A função concat() é chamada a partir do pandas e recebe uma lista de DataFrames como argumento. A concatenação pode ser feita em linhas (axis=0) ou colunas (axis=1), dependendo do resultado desejado. Veja um exemplo básico:
Neste exemplo, temos dois DataFrames: df1 e df2. Para combinar os DataFrames em linhas, passamos a lista [df1, df2] para a função concat() e especificamos a opção axis=0. O resultado será:
Observe que o índice é reiniciado ao combinar os dataframes em linhas.
Exemplos
Vamos ver agora alguns exemplos práticos para entender melhor como usar a função concat().
Exemplo 1 - Concatenação de DataFrames em Linhas
Neste exemplo, temos dois DataFrames: df1 e df2. Ambos têm as colunas ‘A’ e ‘B’. Queremos combinar os DataFrames em linhas. O resultado será:
Observe que o índice é reiniciado ao combinar os DataFrames em linhas.
Exemplo 2 - Concatenação de DataFrames em Colunas
Neste exemplo, temos dois DataFrames: df1 e df2. df1 tem as colunas ‘A’ e ‘B’, enquanto df2 tem as colunas ‘C’ e ‘D’. Queremos combinar os DataFrames em colunas. O resultado será:
Observe que as colunas de df1 são combinadas com as colunas de df2.
Conclusão
Neste tutorial, você aprendeu como combinar DataFrames usando três técnicas diferentes: merge(), join() e concat(). Cada uma dessas técnicas tem suas próprias peculiaridades e pode ser útil em diferentes situações.
A função merge() é a mais flexível das três, permitindo combinações complexas de dados com base em colunas ou índices comuns.
A função join() é uma abordagem simplificada em relação à merge(), e é útil quando você deseja combinar DataFrames com base em uma única coluna ou índice-chave.
A função concat() é a mais simples das três, realizando a combinação simplesmente empilhando DataFrames em linhas ou colunas.
Agora que você conhece essas técnicas, você está pronto para combinar e analisar seus dados com mais eficiência usando o pandas no Python.