Pandas DataFrame DataFrame.append() Fonction

Suraj Joshi 16 février 2024
  1. Syntaxe de la méthode pandas.DataFrame.append():
  2. Exemples de codes: ajoutez deux DataFrames avec pandas.DataFrame.append()
  3. Exemples de codes: ajouter des cadres de données et ignorer l’index avec pandas.DataFrame.append()
  4. Définissez verify_integrity = True dans la méthode DataFrame.append()
  5. Exemples de codes: ajouter une trame de données avec différentes colonnes
Pandas DataFrame DataFrame.append() Fonction

pandas.DataFrame.append() prend un DataFrame en entrée et fusionne ses lignes avec des lignes de DataFrame appelant la méthode retournant finalement un nouveau DataFrame. Si aucune colonne de DataFrame d’entrée n’est présente dans DataFrame de l’appelant, les colonnes sont ajoutées à DataFrame et les valeurs manquantes sont définies sur NaN.

Syntaxe de la méthode pandas.DataFrame.append():

DataFrame.append(other, ignore_index=False, verify_integrity=False, sort=False)

Paramètres

other Input DataFrame ou Series, ou de type Python Dictionary dont les lignes doivent être ajoutées
ignore_index Booléen. Si True, les index du DataFrame d’origine sont ignorés. La valeur par défaut est False, ce qui signifie que les index sont utilisés.
verify_integrity Booléen. Si True, élevez ValueError lors de la création d’un index avec des doublons. La valeur par défaut est False.
sort Booléen. Il trie l’original et l’autre DataFrame si les colonnes ne sont pas alignées.

Exemples de codes: ajoutez deux DataFrames avec 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)

Production:

     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

Il ajoute df_2 à la fin de df_1 et retourne merged_df fusionnant les lignes des deux DataFrames. Ici, les indices de merged_df sont les mêmes que leurs DataFrames parents.

Exemples de codes: ajouter des cadres de données et ignorer l’index avec 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)

Production:

     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

Il ajoute df_2 à la fin de df_1 et ici le merged_df obtient des indices complètement nouveaux en utilisant l’argument ignore_index = True dans la méthode append().

Définissez verify_integrity = True dans la méthode DataFrame.append()

Si nous définissons verify_integrity = True dans la méthode append(), nous obtenons la ValueError pour les indices en double.

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)

Production:

ValueError: Indexes have overlapping values: Int64Index([0, 1, 2], dtype='int64')

Il génère une ValueError car les éléments de df_1 et df_2 ont les mêmes indices par défaut. Pour éviter cette erreur, nous utilisons la valeur par défaut de verify_integrity c’est-à-dire verify_integrity = False.

Exemples de codes: ajouter une trame de données avec différentes colonnes

Si nous ajoutons un DataFrame avec une colonne différente, cette colonne est ajoutée au DataFrame résultant ’et les cellules correspondantes des colonnes inexistantes dans l’original ou l’autre DataFrame sont définies pour être 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)

Production:

     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

Ici, les lignes de df_1 obtiennent des valeurs de NaN pour la colonne Age car la colonne Age est présente uniquement dans df_2.

Nous avons également défini sort = False pour faire taire l’avertissement selon lequel le tri sera obsolète dans la future version de Pandas.

Auteur: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Article connexe - Pandas DataFrame