Pandas DataFrame DataFrame.append() Função
-
Sintaxe de
pandas.DataFrame.append()Método: -
Códigos de exemplo: Anexar dois DataFrames com
pandas.DataFrame.append() -
Códigos de exemplo: Anexar DataFrames e Ignorar o índice com
pandas.DataFrame.append() -
Defina
verify_integrity=TrueemDataFrame.append()Método - Códigos de exemplo: Anexar DataFrame com coluna(s) diferente(s)
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 is a backend software engineer at Matrice.ai.
LinkedIn