Pandas Series.str.split() Funktion
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. Wenn
expand=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
# 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:
s.str.split()Standardmäßig werden Zeichenketten nach Leerraum (Leerzeichen, Tabs usw.) aufgeteilt.- Der Rückgabewert ist eine Series, die Listen enthält; jede Liste enthält die Teilzeichenketten nach dem Aufteilen.
- '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
# 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
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
# 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
# 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
# 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.- Wann
expand=FalseBei expand=False wird eine Series zurückgegeben, die Listen enthält. - Wann
expand=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.
Andere Erweiterungen
Gängige Pandas-Funktionen