Como adicionar dois dataframes pandas (com exemplo)


Você pode usar a seguinte sintaxe básica para adicionar os valores em dois DataFrames do pandas:

 df3 = df1. add (df2, fill_value= 0 )

Isto produzirá um novo DataFrame que contém a soma dos elementos correspondentes em cada DataFrame individual.

Se existir um elemento em um DataFrame e não no outro, o elemento existente será usado no DataFrame resultante.

O exemplo a seguir mostra como usar essa sintaxe na prática.

Exemplo: como adicionar dois DataFrames Pandas

Vamos supor que temos os dois DataFrames panda a seguir:

 import pandas as pd

#create first DataFrame
df1 = pd. DataFrame ({' points ': [18, 22, 19, 14, 11],
                    ' assists ': [5, 11, 7, 9, 12]})

#view first DataFrame
print (df1)

   assist points
0 18 5
1 22 11
2 19 7
3 14 9
4 11 12

#create second DataFrame
df2 = pd. DataFrame ({' points ': [10, 5, 4, 3, 9, 14],
                    ' assists ': [9, 7, 4, 2, 3, 3]})

#view second DataFrame
print (df2)

   assist points
0 10 9
1 5 7
2 4 4
3 3 2
4 9 3
5 14 3

Podemos usar a seguinte sintaxe para criar um novo DataFrame que utiliza a soma dos elementos correspondentes em cada DataFrame individual:

 #create new DataFrame by adding two DataFrames
df3 = df1. add (df2, fill_value= 0 )

#view new DataFrame
print (df3)

   assist points
0 28.0 14.0
1 27.0 18.0
2 23.0 11.0
3 17.0 11.0
4 20.0 15.0
5 14.0 3.0

Observe que o DataFrame resultante contém a soma dos elementos correspondentes em cada DataFrame individual.

Observe que a linha com valor de índice 5 existia apenas no segundo DataFrame, portanto, os valores nesta linha são simplesmente os valores no segundo DataFrame.

Observe também que desde que fizemos a adição, cada um dos valores no novo DataFrame são representados como valores flutuantes com uma casa decimal.

Para converter cada um desses valores de volta para um número inteiro, podemos usar a função astype() :

 #convert all columns in new DataFrame to integer
df3 = df3. astype (' int64 ')

#view updated DataFrame
print (df3)

   assist points
0 28 14
1 27 18
2 23 11
3 17 11
4 20 15
5 14 3

Cada um dos valores no novo DataFrame agora são inteiros.

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras tarefas comuns do panda:

Pandas: adicione uma coluna de um DataFrame para outro
Pandas: Obtenha linhas que não estão em outro DataFrame
Pandas: como verificar se várias colunas são iguais

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *