Pandas concat()-Funktion

Pandas 通用函数Pandas Häufige Funktionen


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 esTrue, 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 istNone。

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

import pandas as pd

# 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:

  1. pd.concat([s1, s2])Verkette zwei Series vertikal zu einer längeren Series.
  2. Standardmäßig bleibt der ursprüngliche Index erhalten, sodass doppelte Indexwerte 0, 1, 2 auftreten.
  3. Einstellungignore_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

import pandas as pd

# 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:

  • Verwendungaxis=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

import pandas as pd

# 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önnenresult['第一组']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

import pandas as pd

# 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)。

Tipp: 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 常用函数Pandas Häufige Funktionen

Andere Erweiterungen