Pandas Series.str.split() Funktion

Pandas 常用函数Gängige Pandas-Funktionen


Series.str.split()Es ist eine Funktion in Pandas, mit der Zeichenfolgen aufgeteilt werden.

Bei der Datenverarbeitung müssen wir häufig eine Zeichenfolge in mehrere Teile aufteilen, zum Beispiel einen Satz in Wörter aufteilen oder durch Kommas getrennte Werte in Listen aufteilen.split()Die Funktion kann eine Zeichenfolge gemäß einem angegebenen Trennzeichen in mehrere Teile aufteilen.

Wortbedeutung:splitsplit bedeutet "trennen, aufteilen" und gibt an, dass eine Zeichenfolge in mehrere Teile unterteilt wird.


Grundlegende Syntax und Parameter

str.split()Es ist eine String-Accessor-Methode von Series, daher müssen Sie zunächst eine Series haben, die Zeichenketten enthält, und dann.strden Accessor verwenden, um sie aufzurufen.

Syntaxformat

Series.str.split(pat=None, n=-1, expand=False)

Parameterbeschreibung

Parameter Type Erforderlich? Beschreibung Standardwert
pat str Optional Trennzeichen, kann eine Zeichenfolge oder ein regulärer Ausdruck sein. Standardmäßig Leerraum. None (Leerraum)
n int Optional Anzahl der Aufteilungen. -1 bedeutet kein Limit, in so viele Teile wie möglich aufteilen. -1
expand bool Optional Ob das Ergebnis in einen DataFrame erweitert werden soll. Standardmäßig False (gibt eine Series von Listen zurück). False

Funktionsbeschreibung

  • Rückgabewert: Standardmäßig wird eine Series zurückgegeben, die Listen enthält, wobei jedes Element in jeder Liste eine Teilzeichenfolge nach dem Aufteilen ist. Wennexpand=Trueexpand=True, wird ein DataFrame zurückgegeben.
  • Wirkung: Teilt jede Zeichenkette gemäß dem angegebenen Trennzeichen in mehrere Teile auf.
  • Hinweis: Standardmäßig wird Leerraum als Trennzeichen verwendet; Sie können ein benutzerdefiniertes Trennzeichen angeben.

Beispiele

Lassen Sie uns anhand einer Reihe von Beispielen von einfach bis komplexstr.split()die Verwendung beherrschen.

Beispiel 1: Grundlegende Verwendung - Aufteilen nach Leerraum

Beispiel

import pandas as pd

# Erstellen Sie eine Series mit Sätzen
s = pd.Series(['hello world', 'example python', 'pandas data analysis'])

# Nach Leerraum aufteilen (Standardverhalten)
result = s.str.split()

print("Originalreihe:")
print(s)
print("nErgebnis nach dem Aufteilen:")
print(result)

Ausgabe:

原始 Series:
0         hello world
1      example python
2    pandas data analysis
dtype: object

拆分后的结果:
0         [hello, world]
1    [example, python]
2    [pandas, data, analysis]

Code-Erklärung:

  1. s.str.split()Standardmäßig werden Zeichenketten nach Leerraum (Leerzeichen, Tabs usw.) aufgeteilt.
  2. Der Rückgabewert ist eine Series, die Listen enthält; jede Liste enthält die Teilzeichenketten nach dem Aufteilen.
  3. 'pandas data analysis' wird in drei Teile aufgeteilt.

Beispiel 2: Aufteilen nach einem angegebenen Trennzeichen

Sie könnenpatder Parameter zum Angeben eines benutzerdefinierten Trennzeichens.

Beispiel

import pandas as pd

# Eine Series mit kommagetrennten Werten erstellen
s = pd.Series(['apple,banana,orange', 'dog,cat,bird', 'red,green,blue'])

# Nach Komma aufteilen
result = s.str.split(',')

print("Originalreihe:")
print(s)
print("nErgebnis nach Aufteilen durch Komma:")
print(result)

Ausgabe:

原始 Series:
0    apple,banana,orange
1       dog,cat,bird
2       red,green,blue
dtype: object

拆分后的结果:
0    [apple, banana, orange]
1       [dog, cat, bird]
2       [red, green, blue]

Code-Erklärung:

  • s.str.split(',')Jede Zeichenkette durch Komma aufteilen.
  • Dies ist eine gängige Methode zur Verarbeitung von CSV-Daten oder kommagetrennten Werten.

Beispiel 3: Begrenzung der Anzahl der Aufteilungen

Mit dernMit dem Parameter können Sie die Anzahl der Aufteilungen begrenzen.

Beispiel

import pandas as pd

s = pd.Series(['a,b,c,d,e', '1,2,3,4,5'])

# Auf nur 2 Teile begrenzen
result_2 = s.str.split(',', n=2)
# Auf nur 1 Teil begrenzen (d. h. nur einmal aufteilen)
result_1 = s.str.split(',', n=1)

print("Originalreihe:")
print(s)
print("nAuf 2 Teile begrenzen:")
print(result_2)
print("nAuf 1 Teil begrenzen:")
print(result_1)

Ausgabe:

原始 Series:
0       a,b,c,d,e
1       1,2,3,4,5
dtype: object

限制拆分为 2 部分:
0       [a, b, c,d,e]
1       [1, 2, 3,4,5]

限制拆分为 1 部分:
0            [a, b,c,d,e]
1            [1, 2,3,4,5]

Code-Erklärung:

  • n=2Bedeutet, in höchstens 2 Teile aufzuteilen, wobei der letzte Teil den gesamten verbleibenden Inhalt enthält.
  • n=1Bedeutet, nur am ersten Trennzeichen aufzuteilen, was zu 2 Teilen führt.

Beispiel 4: Erweitern zu einem DataFrame

Wannexpand=TrueWenn expand=True, wird das Aufteilungsergebnis zu einem DataFrame erweitert.

Beispiel

import pandas as pd

# Eine Series mit kommagetrennten Werten erstellen
s = pd.Series(['apple,banana,orange', 'dog,cat,bird', 'red,green,blue'])

# Zu DataFrame erweitern
result = s.str.split(',', expand=True)

print("Originalreihe:")
print(s)
print("nZu DataFrame erweitert:")
print(result)
print("nDataFrame-Typ:", type(result))

Ausgabe:

原始 Series:
0    apple,banana,orange
1       dog,cat,bird
2       red,green,blue
dtype: object

展开为 DataFrame:
        0       1       2
0   apple   banana  orange
1     dog     cat    bird
2     red   green    blue

DataFrame 类型: <class 'pandas.core.frame.DataFrame'>

Code-Erklärung:

  • expand=TrueDas Ergebnis der Aufteilung zu einem DataFrame erweitern.
  • Jede Spalte repräsentiert eine Position nach dem Aufteilen.
  • Dies ist sehr nützlich beim Umgang mit strukturierten Daten.

Beispiel 5: Aufteilen mit regulären Ausdrücken

split()Es unterstützt auch die Verwendung regulärer Ausdrücke als Trennzeichen.

Beispiel

import pandas as pd

# Erstelle eine Series mit verschiedenen Trennzeichen
s = pd.Series(['hello-world', 'example_python', 'pandas#tutorial'])

# Aufteilen durch regulären Ausdruck (passt auf eines von -, _, #)
result = s.str.split(r'[-_#]')

print("Originalreihe:")
print(s)
print("nSplit by regular expression:")
print(result)

Ausgabe:

原始 Series:
0     hello-world
1   example_python
2    pandas#tutorial
dtype: object

按正则表达式拆分:
0       [hello, world]
1       [example, python]
2    [pandas, tutorial]

Code-Erklärung:

  • r'[-_#]'Es ist ein regulärer Ausdruck, der auf eines von '-', '_' oder '#' passt.
  • Es kann mehrere verschiedene Trennzeichen gleichzeitig verarbeiten.

Beispiel 6: Umgang mit realen Daten

In praktischen Anwendungen,split()wird es oft in Kombination mit anderen Funktionen verwendet.

Beispiel

import pandas as pd

# Simuliere Daten, die aus Logs extrahiert wurden
logs = pd.Series([
    '2024-01-01 10:30:45 ERROR Verbindung fehlgeschlagen',
    '2024-01-01 10:31:12 INFO Benutzer angemeldet',
    '2024-01-01 10:32:00 WARNING Speicherverbrauch hoch'
])

# Log-Inhalt aufteilen
log_parts = logs.str.split(r's+', expand=True)

print("Original-Log:")
print(logs)
print("nSplit DataFrame:")
print(log_parts)

# Spalten umbenennen
log_parts.columns = ['timestamp', 'level', 'message']
print("nResult after renaming:")
print(log_parts)

Ausgabe:

原始日志:
0    2024-01-01 10:30:45 ERROR Connection failed
1    2024-01-01 10:31:12 INFO User logged in
2    2024-01-01 10:32:00 WARNING Memory usage high
dtype: object

拆分后的 DataFrame:
                  0     1     2
0  2024-01-01 10:30:45  ERROR  Connection failed
1  2024-01-01 10:31:12   INFO  User logged in
2  2024-01-01 10:32:00  WARNING  Memory usage high

重命名后的结果:
               timestamp    level                message
0  2024-01-01 10:30:45    ERROR    Connection failed
1  2024-01-01 10:31:12     INFO      User logged in
2  2024-01-01 10:32:00  WARNING  Memory usage high

Code-Erklärung:

  • r's+'Entspricht einem oder mehreren Leerraumzeichen und teilt das Log in mehrere Teile auf.
  • expand=TrueDas Ergebnis der Aufteilung zu einem DataFrame erweitern.
  • Durch das Umbenennen der Spalten können Sie bequem auf jeden Teil zugreifen und ihn verarbeiten.

Hinweise

  • str.split()Standardmäßig wird Leerraum als Trennzeichen verwendet.
  • Wannexpand=FalseBei expand=False wird eine Series zurückgegeben, die Listen enthält.
  • Wannexpand=TrueBei expand=True wird ein DataFrame zurückgegeben, und die Anzahl der Spalten hängt vom längsten Aufteilungsergebnis ab.
  • Wenn eine Zeichenkette das Trennzeichen nicht enthält, enthält die zurückgegebene Liste nur ein Element (die ursprüngliche Zeichenkette).
  • Reguläre Ausdrücke können als Trennzeichen verwendet werden, was eine flexiblere Möglichkeit zum Aufteilen bietet.
  • Wenn die Series NaN-Werte enthält, wird NaN zurückgegeben.

Pandas 常用函数Gängige Pandas-Funktionen

Andere Erweiterungen