Pandas DataFrame DataFrame.append() Funktion

Suraj Joshi 16 Februar 2024
  1. Syntax der Methode pandas.DataFrame.append():
  2. Beispiel-Codes: Zwei DatenFrames mit pandas.DataFrame.append() anhängen
  3. Beispiel-Codes: Anhängen von DatenFrames und Ignorieren des Index mit pandas.DataFrame.append()
  4. Setzen Sie verify_integrity=True in der Methode DataFrame.append()
  5. Beispiel-Codes: DataFrame mit verschiedenen Spalten anhängen
Pandas DataFrame DataFrame.append() Funktion

pandas.DataFrame.append() nimmt einen DataFrame als Eingabe und vermischt seine Zeilen mit Zeilen von DataFrame, wobei die Methode schließlich einen neuen DataFrame zurückgibt. Wenn eine Spalte im EingabedatenFrame nicht im aufrufenden DatenFrame vorhanden ist, werden die Spalten zum DatenFrame hinzugefügt und die fehlenden Werte auf NaN gesetzt.

Syntax der Methode pandas.DataFrame.append():

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

Parameter:

other EingabeDataFrame oder Serie oder Python-Dictionary-ähnlich, dessen Zeilen angehängt werden sollen
ignore_index Boolesch. Wenn True, werden die Indizes aus dem ursprünglichen DataFrame ignoriert. Der Standardwert ist False, was bedeutet, dass die Indizes verwendet werden.
verify_integrity Boolesch. Falls True, erhöhen Sie ValueError bei der Erstellung eines Index mit Duplikaten. Der Standardwert ist False.
sort Boolesch. Es sortiert das Original und den anderen DataFrame, wenn die Spalten nicht ausgerichtet sind.

Beispiel-Codes: Zwei DatenFrames mit pandas.DataFrame.append() anhängen

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)

Ausgabe:

     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

Es hängt df_2 am Ende von df_1 an und gibt merged_df zurück, wobei die Zeilen beider DataFrames zusammengeführt werden. Hier sind die Indizes von merged_df die gleichen wie ihre übergeordneten DataFrames.

Beispiel-Codes: Anhängen von DatenFrames und Ignorieren des Index mit 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)

Ausgabe:

     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

Es hängt df_2 am Ende von df_1 an und hier erhält das merged_df komplett neue Indizes, indem es das ignore_index=True Argument in der append() Methode benutzt.

Setzen Sie verify_integrity=True in der Methode DataFrame.append()

Wenn wir verify_integrity=True in der Methode append() setzen, erhalten wir den ValueError für doppelte Indizes.

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)

Ausgabe:

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

Es wird ein ValueError erzeugt, weil die Elemente in df_1 und df_2 standardmäßig die gleichen Indizes haben. Um diesen Fehler zu vermeiden, verwenden wir den Standardwert von verify_integrity, d.h. verify_integrity=False.

Beispiel-Codes: DataFrame mit verschiedenen Spalten anhängen

Wenn wir einen DataFrame mit einer anderen Spalte anhängen, wird diese Spalte zum resultierenden DataFrame hinzugefügt und die entsprechenden Zellen der nicht existierenden Spalten im ursprünglichen oder dem anderen DataFrame werden auf NaN gesetzt.

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)

Ausgabe:

     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

Hier erhalten die Zeilen von df_1 NaN Werte für die Spalte Age, weil die Spalte Age nur in df_2 vorhanden ist.

Wir setzen auch sort=False, um die Warnung auszuschalten, dass die Sortierung in der zukünftigen Pandas-Version veraltet sein wird.

Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn

Verwandter Artikel - Pandas DataFrame