Pandas concat()-Funktion
pd.concat()wird in der Pandas-Bibliothek verwendet, ummehrere Series- oder DataFrame-Objekte zu verketten (verbinden)Funktion. Sie kann mehrere Objekte entlang der Zeilen- oder Spaltenrichtung zu einem neuen Objekt zusammenführen.
Dies ist eine der am häufigsten verwendeten Zusammenführungsoperationen in der Datenverarbeitung, sei es beim vertikalen Anhängen von Daten oder beim horizontalen Zusammenführen von Feldern,pd.concat()ist es voll dazu in der Lage.
Wortdefinition: concatist eine Abkürzung für "concatenate" (verbinden, aneinanderreihen), was bedeutet, mehrere Dinge Ende an Ende zu verbinden.
Grundlegende Syntax und Parameter
pd.concat()ist eine Top-Level-Funktion der Pandas-Bibliothek, die verwendet wird, um mehrere Series- oder DataFrame-Objekte entlang einer angegebenen Achse zu verketten.
Syntaxformat
pd.concat(objs, axis=0, join='outer', ignore_index=False, keys=None, levels=None, names=None, verify_integrity=False, sort=False)
Parameterbeschreibung
- Parameter:
objs- Typ: Series, DataFrame oder eine Liste davon.
- Beschreibung: Ein oder mehrere Series/DataFrame-Objekte, die konkateniert werden sollen. Sie können ein einzelnes Objekt, eine Liste oder ein Dictionary sein.
- Parameter:
axis- Typ: Integer (0 oder 1).
- Beschreibung: Gibt die Achse der Konkatenation an.
0bedeutet Konkatenation nach Zeilen (vertikales Anhängen),1bedeutet Konkatenation nach Spalten (horizontales Zusammenführen). Standard ist0。
- Parameter:
join- Typ: String ('outer' oder 'inner').
- Beschreibung: Wie damit umzugehen ist, wenn die Indizes entlang der Konkatenationsachse inkonsistent sind.
'outer'bedeutet die Bildung der Vereinigung (alle Indizes beibehalten),'inner'bedeutet die Bildung der Schnittmenge (nur gemeinsame Indizes beibehalten). Standard ist'outer'。
- Parameter:
ignore_index- Typ: Boolean.
- Beschreibung: Wenn es
True, wird der ursprüngliche Index nach der Konkatenation nicht verwendet, stattdessen wird ein neuer ganzzahliger Index erstellt. Standard istFalse。
- Parameter:
keys- Typ: Sequence.
- Beschreibung: Wird verwendet, um nach der Verkettung einen mehrstufigen Index zu erstellen, der die Quelle jedes ursprünglichen Objekts angibt. Standard ist
None。
Funktionsbeschreibung
- Rückgabewert: Gibt das verkettete Series- oder DataFrame-Objekt zurück. Der Typ stimmt mit den Eingabeobjekten überein.
- Wirkung: Führt mehrere Objekte entlang der angegebenen Achse zu einem Objekt zusammen.
Beispiele
Anhand einer Reihe von Beispielen von einfach bis komplex wollen wir gründlich beherrschenpd.concat()die Verwendung beherrschen.
Beispiel 1: Grundlegende Verwendung - Vertikales Verketten von Series
Beispiel
# 1. Zwei Series erstellen
s1 = pd.Series(['Alice', 'Bob', 'Charlie'], name='name')
s2 = pd.Series(['Diana', 'Eve', 'Frank'], name='name')
print(=== Ursprüngliche Series ===)
print("s1:", s1.tolist())
print("s2:", s2.tolist())
# 2. Verwende pd.concat(), um vertikal zu verketten (Standard axis=0)
result = pd.concat([s1, s2])
print("\n=== Ergebnis der vertikalen Verkettung von pd.concat([s1, s2]) ===)
print(result)
# 3. Ignoriere den ursprünglichen Index und erstelle einen neuen ganzzahligen Index
result_ignore = pd.concat([s1, s2], ignore_index=True)
print("\n=== Ergebnis von ignore_index=True ===)
print(result_ignore)
Erwartete Ausgabe:
=== 原始 Series === s1: ['Alice', 'Bob', 'Charlie'] s2: ['Diana', 'Eve', 'Frank'] === pd.concat([s1, s2]) 纵向拼接结果 === 0 Alice 1 Bob 2 Charlie 0 Diana 1 Eve 2 Frank dtype: object === ignore_index=True 结果 === 0 Alice 1 Bob 2 Charlie 3 Diana 4 Eve 5 Frank dtype: object
Codeanalyse:
pd.concat([s1, s2])Verkette zwei Series vertikal zu einer längeren Series.- Standardmäßig bleibt der ursprüngliche Index erhalten, sodass doppelte Indexwerte 0, 1, 2 auftreten.
- Einstellung
ignore_index=Truekann einen fortlaufenden numerischen Index neu erzeugen.
Beispiel 2: DataFrame horizontal verketten
Verwendungaxis=1Sie können mehrere DataFrames spaltenweise verketten, was beim Zusammenführen unterschiedlicher Felder sehr nützlich ist.
Beispiel
# 1. Erstelle zwei DataFrames
df1 = pd.DataFrame({
'name': ['Alice', 'Bob', 'Charlie'],
'age': [25, 30, 35]
})
df2 = pd.DataFrame({
'city': ['Beijing', 'Shanghai', 'Guangzhou'],
'score': [85, 90, 95]
})
print(=== Ursprünglicher DataFrame ===)
print("df1:")
print(df1)
print("\ndf2:")
print(df2)
# 2. Horizontale Verkettung (axis=1)
result = pd.concat([df1, df2], axis=1)
print("\n=== Horizontale Verkettung mit pd.concat([df1, df2], axis=1) ===)
print(result)
Erwartete Ausgabe:
=== 原始 DataFrame ===
df1:
name age
0 Alice 25
1 Bob 30
2 Charlie 35
df2:
city score
0 Beijing 85
1 Shanghai 90
2 Guangzhou 95
=== pd.concat([df1, df2], axis=1) 横向拼接 ===
name age city score
0 Alice 25 Beijing 85
1 Bob 30 Shanghai 90
2 Charlie 35 Guangzhou 95
Codeanalyse:
- Verwendung
axis=1Verketten Sie die beiden DataFrames spaltenweise. - Horizontale Verkettung erfordert, dass die beiden DataFrames die gleiche Anzahl von Zeilen haben (Index-Ausrichtung).
- Das verkettete DataFrame enthält alle Spalten beider Objekte.
Beispiel 3: Verwendung des keys-Parameters zum Erstellen eines hierarchischen Index
keysDer Parameter kann uns helfen, die Datenquelle zu identifizieren, was sehr nützlich ist, wenn Inhalte aus verschiedenen Datensätzen zusammengeführt werden.
Beispiel
# 1. Ein Wörterbuch mit mehreren Series erstellen
data = {
'group_a': pd.Series([1, 2, 3, 4]),
'group_b': pd.Series([5, 6, 7, 8]),
'group_c': pd.Series([9, 10, 11, 12])
}
print(=== Verkettung mit dem keys-Parameter ===)
# 2. Verwenden Sie den keys-Parameter, um einen hierarchischen Index zu erstellen
result = pd.concat(data, keys=['Group 1', 'Group 2', 'Group 3'])
print(result)
# 3. Zugriff auf Daten auf einer bestimmten Ebene
print("\n=== Zugriff auf die Daten von 'Group 1' ===)
print(result['Group 1'])
Erwartete Ausgabe:
=== 使用 keys 参数拼接 ===
第一组 group_a 1
group_b 2
group_c 3
group_a 4
第二组 group_a 5
group_b 6
group_c 7
group_a 8
第二组 group_b 9
...
Codeanalyse:
keysDer Parameter erstellt einen mehrstufigen Index (hierarchischen Index) für das Verkettungsergebnis, wobei die erste Ebene die Quellgruppe der Daten identifiziert.- Sie können
result['第一组']um auf Daten einer bestimmten Gruppe zuzugreifen.
Beispiel 4: Umgang mit DataFrames mit unterschiedlichen Spalten (join-Parameter)
Wenn die zu verkettenden DataFrames unterschiedliche Spalten haben, können Siejoinden Parameter verwenden, um die Behandlungsmethode zu steuern.
Beispiel
# 1. DataFrames mit unterschiedlichen Spalten erstellen
df1 = pd.DataFrame({
'name': ['Alice', 'Bob'],
'age': [25, 30]
})
df2 = pd.DataFrame({
'name': ['Charlie', 'Diana'],
'score': [85, 90]
})
print(=== Ursprünglicher DataFrame ===)
print("df1:")
print(df1)
print("\ndf2:")
print(df2)
# 2. Äußerer Join (Standard) – alle Spalten beibehalten
print("\n=== join='outer' (äußerer Join) ===)
print(pd.concat([df1, df2], join='outer'))
# 3. Innerer Join – nur gemeinsame Spalten beibehalten
print("\n=== join='inner' (innerer Join) ===)
print(pd.concat([df1, df2], join='inner'))
Erwartete Ausgabe:
=== 原始 DataFrame ===
df1:
name age
0 Alice 25
1 Bob 30
df2:
name score
0 Charlie 85
1 Diana 90
=== join='outer' (外连接) ===
name age score
0 Alice 25.0 NaN
1 Bob 30.0 NaN
0 Charlie NaN 85.0
1 Diana NaN 90.0
=== join='inner' (内连接) ===
name
0 Alice
1 Bob
0 Charlie
1 Diana
Codeanalyse:
join='outer'(Standard) behält alle Spalten, fehlende Spalten werden mitNaN。join='inner'behält nur die Spalten, die beide DataFrames gemeinsam haben (hier ist esname)。
Andere ErweiterungenTipp:
pd.concat()eignet sich für einfache Verkettungsoperationen. Wenn Sie komplexere Zusammenführungen benötigen (z. B. Abgleich basierend auf Spaltenwerten), lesen Sie bittepd.merge()Funktion.
Pandas Häufige Funktionen