Pandas DataFrame DataFrame.append() Funktion
-
Syntax der Methode
pandas.DataFrame.append()
: -
Beispiel-Codes: Zwei DatenFrames mit
pandas.DataFrame.append()
anhängen -
Beispiel-Codes: Anhängen von DatenFrames und Ignorieren des Index mit
pandas.DataFrame.append()
-
Setzen Sie
verify_integrity=True
in der MethodeDataFrame.append()
- Beispiel-Codes: DataFrame mit verschiedenen Spalten anhängen
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 is a backend software engineer at Matrice.ai.
LinkedIn