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=True
nel 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