Skip to content

pandas: Umgang mit Strings (Ersetzen, Strip, Groß-/Kleinschreibung, etc.)

Python

Sie können verschiedene Methoden mit dem String-Accessor (str.xxx()) verwenden, um Strings von pandas.Series (= eine Spalte oder Zeile von pandas.DataFrame) zu behandeln (ersetzen, entfernen usw.).

Beispiel sind sterben following Verfahren verfügbar. Sie können sterben gleichen Methoden für Standard-Python-Strings (str) auf alle Elemente von pandas.Series anwenden.

  • Ersetzen Sie jede Zeichenfolge in pandas.Series
  • Streifen Sie jede Zeichenfolge in pandas.Serie ab
    • str.strip()
    • str.lstrip()
    • str.rstrip()
  • Konvertieren Sie die Groß-/Kleinschreibung jeder Zeichenfolge in pandas.Series
    • str.unten()
    • str.upper()
    • str.capitalize()
    • str.title()

Ersetzen Sie jede Zeichenfolge in pandas.Series

str.replace()

import pandas as pd

s = pd.Series([' a-a-x ', ' b-x-b ', ' x-c-c '])
print(s)
# 0     a-a-x 
# 1     b-x-b 
# 2     x-c-c 
# dtype: object

s_new = s.str.replace('x', 'z')
print(s_new)
# 0     a-a-z 
# 1     b-z-b 
# 2     z-c-c 
# dtype: object

Um eine Spalte in pandas.DataFrame zu aktualisieren, weisen SIE sterben neue Spalte der ursprünglichen Spalte zu. Gleiches gilt für andere Methoden.

df = pd.DataFrame([[' a-a-x-1 ', ' a-a-x-2 '],
                   [' b-x-b-1 ', ' b-x-b-2 '],
                   [' x-c-c-1 ', ' x-c-c-2 ']],
                  columns=['col1', 'col2'])
print(df)
#         col1       col2
# 0   a-a-x-1    a-a-x-2 
# 1   b-x-b-1    b-x-b-2 
# 2   x-c-c-1    x-c-c-2 

df['col1'] = df['col1'].str.replace('x', 'z')
print(df)
#         col1       col2
# 0   a-a-z-1    a-a-x-2 
# 1   b-z-b-1    b-x-b-2 
# 2   z-c-c-1    x-c-c-2 

Wenn Sie nicht einen Teilstring, sondern das Element selbst ersetzen möchten, verwenden Sie die Methode replace() von pandas.DataFrame oder pandas.Series.

Streifen Sie jede Zeichenfolge in pandas.Serie ab

str.strip()

Standardmäßig Werden Whitespace-Zeichen am linken und rechten Ende (= führende und abschließende Whitespace-Zeichen) entfernt.

s_new = s.str.strip()
print(s_new)
# 0    a-a-x
# 1    b-x-b
# 2    x-c-c
# dtype: object

SIE can Zeichen angeben, sterben entfernt Werden sollen. Zeichen in der angegebenen Zeichenfolge werden entfernt. Dasselbe gilt für str.lstrip() und str.rstrip().

s_new = s.str.strip(' x')
print(s_new)
# 0     a-a-
# 1    b-x-b
# 2     -c-c
# dtype: object

Für pandas.DataFrame:

df['col1'] = df['col1'].str.strip()
print(df)
#       col1       col2
# 0  a-a-z-1   a-a-x-2 
# 1  b-z-b-1   b-x-b-2 
# 2  z-c-c-1   x-c-c-2 

str.lstrip()

str.lstrip() entfernt nur die Zeichen auf der linken Seite.

s_new = s.str.lstrip()
print(s_new)
# 0    a-a-x 
# 1    b-x-b 
# 2    x-c-c 
# dtype: object

str.rstrip()

str.rstrip() entfernt nur die Zeichen auf der rechten Seite.

s_new = s.str.rstrip()
print(s_new)
# 0     a-a-x
# 1     b-x-b
# 2     x-c-c
# dtype: object

Konvertieren Sie die Groß-/Kleinschreibung jeder Zeichenfolge in pandas.Series

Der folgende pandas.DataFrame wird als Beispiel verwendet.

s = pd.Series(['Hello World', 'hello world', 'HELLO WORLD'])
print(s)
# 0    Hello World
# 1    hello world
# 2    HELLO WORLD
# dtype: object

str.unten()

s_new = s.str.lower()
print(s_new)
# 0    hello world
# 1    hello world
# 2    hello world
# dtype: object

str.upper()

s_new = s.str.upper()
print(s_new)
# 0    HELLO WORLD
# 1    HELLO WORLD
# 2    HELLO WORLD
# dtype: object

str.capitalize()

s_new = s.str.capitalize()
print(s_new)
# 0    Hello world
# 1    Hello world
# 2    Hello world
# dtype: object

str.title()

s_new = s.str.title()
print(s_new)
# 0    Hello World
# 1    Hello World
# 2    Hello World
# dtype: object