Funzione Pandas DataFrame DataFrame.append()
-
Sintassi del metodo
pandas.DataFrame.append(): -
Codici di esempio: aggiungi due DataFrame con
pandas.DataFrame.append() -
Codici di esempio: aggiungi DataFrames e ignora l’indice con
pandas.DataFrame.append() -
Imposta
verify_integrity=Truenel metodoDataFrame.append() - Codici di esempio: Aggiungi dataframe con colonne diverse
pandas.DataFrame.append() prende un DataFrame come input e unisce le sue righe con le righe di DataFrame chiamando il metodo che alla fine restituisce un nuovo DataFrame. Se una colonna nell’input DataFrame non è presente nel chiamante DataFrame, le colonne vengono aggiunte a DataFrame ei valori mancanti vengono impostati su NaN.
Sintassi del metodo pandas.DataFrame.append():
DataFrame.append(other, ignore_index=False, verify_integrity=False, sort=False)
Parametri
other |
Input DataFrame o Series o Python Dictionary-like le cui righe devono essere aggiunte |
ignore_index |
Booleano. Se True, gli indici del DataFrame originale vengono ignorati. Il valore predefinito è False, il che significa che vengono utilizzati gli indici. |
verify_integrity |
Booleano. Se True, solleva ValueError durante la creazione di un indice con duplicati. Il valore predefinito è False. |
sort |
Booleano. Ordina l’originale e l’altro DataFrame se le colonne non sono allineate. |
Codici di esempio: aggiungi due DataFrame con 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)
Produzione:
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
Aggiunge df_2 alla fine di df_1 e restituisce merged_df che unisce le righe di entrambi i DataFrame. Qui, gli indici di merged_df sono gli stessi dei DataFrame principali.
Codici di esempio: aggiungi DataFrames e ignora l’indice con 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)
Produzione:
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
Aggiunge df_2 alla fine di df_1 e qui merged_df ottiene indici completamente nuovi utilizzando l’argomento ignore_index=True nel metodo append().
Imposta verify_integrity=True nel metodo DataFrame.append()
Se impostiamo verify_integrity=True nel metodo append(), otteniamo ValueError per gli indici duplicati.
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)
Produzione:
ValueError: Indexes have overlapping values: Int64Index([0, 1, 2], dtype='int64')
Genera un ValueError perché gli elementi in df_1 e df_2 hanno gli stessi indici di default. Per evitare questo errore, utilizziamo il valore predefinito di verify_integrity cioè verify_integrity=False.
Codici di esempio: Aggiungi dataframe con colonne diverse
Se aggiungiamo un DataFrame con una colonna diversa, questa colonna viene aggiunta al risultato DataFrame e le celle corrispondenti delle colonne non esistenti nell’originale o nell’altro DataFrame vengono impostate come 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)
Produzione:
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
Qui, le righe di df_1 ottengono valori NaN per la colonna Age perché la colonna Age è presente solo in df_2.
Abbiamo anche impostato sort=False per silenziare l’avvertimento che l’ordinamento sarà deprecato nella futura versione di Pandas.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn