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=True
emDataFrame.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