Pandas DataFrame DataFrame.append() Função

Suraj Joshi 16 fevereiro 2024
  1. Sintaxe de pandas.DataFrame.append() Método:
  2. Códigos de exemplo: Anexar dois DataFrames com pandas.DataFrame.append()
  3. Códigos de exemplo: Anexar DataFrames e Ignorar o índice com pandas.DataFrame.append()
  4. Defina verify_integrity=True em DataFrame.append() Método
  5. Códigos de exemplo: Anexar DataFrame com coluna(s) diferente(s)
Pandas DataFrame DataFrame.append() Função

pandas.DataFrame.append() toma um DataFrame como entrada e funde suas filas com filas de DataFrame chamando o método finalmente retornando um novo DataFrame. Se alguma coluna no DataFrame de entrada não estiver presente no DataFrame do chamador, então as colunas são adicionadas ao DataFrame, e os valores em falta são definidos como NaN.

Sintaxe de pandas.DataFrame.append() Método:

DataFrame.append(other, ignore_index=False, verify_integrity=False, sort=False)

Parâmetros

other Input DataFrame ou Series, ou Python Dictionary-like cujas fileiras devem ser anexadas
ignore_index Booleano. Se True, os índices da DataFrame original são ignorados. O valor padrão é False, o que significa que os índices são utilizados.
verify_integrity Booleano. Se True, aumentar o ValueError ao criar índice com duplicatas. O valor padrão é False.
sort Booleano. Classifica o DataFrame original e o outro DataFrame, se as colunas não estiverem alinhadas.

Códigos de exemplo: Anexar dois DataFrames com pandas.DataFrame.append()

import pandas as pd

names_1=['Hisila', 'Brian','Zeppy']
salary_1=[23,30,21]

names_2=['Ram','Shyam',"Hari"]
salary_2=[22,23,31]

df_1 = pd.DataFrame({'Name': names_1, 'Salary': salary_1})
df_2 = pd.DataFrame({'Name': names_2, 'Salary': salary_2})


merged_df = df_1.append(df_2)
print(merged_df)

Resultado:

     Name  Salary
0  Hisila      23
1   Brian      30
2   Zeppy      21
    Name  Salary
0    Ram      22
1  Shyam      23
2   Hari      31
     Name  Salary
0  Hisila      23
1   Brian      30
2   Zeppy      21
0     Ram      22
1   Shyam      23
2    Hari      31

Ela anexa df_2 ao final de df_1 e retorna merged_df fundindo as linhas de ambos os DataFrames. Aqui, os índices de merged_df são os mesmos que os DataFrames de seus pais.

Códigos de exemplo: Anexar DataFrames e Ignorar o índice com pandas.DataFrame.append()

import pandas as pd

names_1=['Hisila', 'Brian','Zeppy']
salary_1=[23,30,21]

names_2=['Ram','Shyam',"Hari"]
salary_2=[22,23,31]

df_1 = pd.DataFrame({'Name': names_1, 'Salary': salary_1})
df_2 = pd.DataFrame({'Name': names_2, 'Salary': salary_2})

merged_df = df_1.append(df_2,ignore_index=True)

print(df_1)
print(df_2)
print( merged_df)

Resultado:

     Name  Salary
0  Hisila      23
1   Brian      30
2   Zeppy      21
    Name  Salary
0    Ram      22
1  Shyam      23
2   Hari      31
     Name  Salary
0  Hisila      23
1   Brian      30
2   Zeppy      21
3     Ram      22
4   Shyam      23
5    Hari      31

Ele anexa df_2 ao final de df_1 e aqui o merged_df obtém índices completamente novos utilizando o argumento ignore_index=True no método append().

Defina verify_integrity=True em DataFrame.append() Método

Se definirmos verify_integrity=True no método append(), obtemos o ValueError para índices duplicados.

import pandas as pd

names_1=['Hisila', 'Brian','Zeppy']
salary_1=[23,30,21]

names_2=['Ram','Shyam',"Hari"]
salary_2=[22,23,31]

df_1 = pd.DataFrame({'Name': names_1, 'Salary': salary_1})
df_2 = pd.DataFrame({'Name': names_2, 'Salary': salary_2})

merged_df = df_1.append(df_2,verify_integrity=True)

print(df_1)
print(df_2)
print( merged_df)

Resultado:

ValueError: Indexes have overlapping values: Int64Index([0, 1, 2], dtype='int64')

Ele gera um ValueError porque os elementos em df_1 e df_2 têm os mesmos índices por padrão. Para evitar este erro, utilizamos o valor padrão de verify_integrity, ou seja, verify_integrity=False.

Códigos de exemplo: Anexar DataFrame com coluna(s) diferente(s)

Se anexarmos um DataFrame com uma coluna diferente, esta coluna será adicionada ao DataFrame resultante e as células correspondentes das colunas não existentes no original ou no outro DataFrame serão definidas como NaN.

import pandas as pd

names_1=['Hisila', 'Brian','Zeppy']
salary_1=[23,30,21]

names_2=['Ram','Shyam',"Hari"]
salary_2=[22,23,31]
Age=[30,31,33]

df_1 = pd.DataFrame({'Name': names_1, 'Salary': salary_1})
df_2 = pd.DataFrame({'Name': names_2, 'Salary': salary_2,"Age":Age})

merged_df = df_1.append(df_2, sort=False)

print(df_1)
print(df_2)
print( merged_df)

Resultado:

     Name  Salary
0  Hisila      23
1   Brian      30
2   Zeppy      21
    Name  Salary  Age
0    Ram      22   30
1  Shyam      23   31
2   Hari      31   33
     Name  Salary   Age
0  Hisila      23   NaN
1   Brian      30   NaN
2   Zeppy      21   NaN
0     Ram      22  30.0
1   Shyam      23  31.0
2    Hari      31  33.0

Aqui, as linhas de df_1 recebem valores de NaN para a coluna Age porque a coluna Age está presente apenas em df_2.

Também definimos sort=False para silenciar o aviso de que a classificação será depreciada na futura versão Pandas.

Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Artigo relacionado - Pandas DataFrame