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, sollevaValueErrordurante 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