Suche…


Reguläre Ausdrücke

# Extract strings with a specific regex
df= df['col_name'].str.extract[r'[Aa-Zz]']

# Replace strings within a regex
df['col_name'].str.replace('Replace this', 'With this')

Informationen zum Abgleichen von Zeichenfolgen mithilfe von regulärem Ausdruck finden Sie unter Erste Schritte mit regulären Ausdrücken .

Saiten schneiden

Strings in einer Serie können mit der .str.slice() Methode oder besser mit Klammern ( .str[] ) geschnitten werden.

In [1]: ser = pd.Series(['Lorem ipsum', 'dolor sit amet', 'consectetur adipiscing elit'])
In [2]: ser
Out[2]: 
0                    Lorem ipsum
1                 dolor sit amet
2    consectetur adipiscing elit
dtype: object 

Holen Sie sich das erste Zeichen jeder Zeichenfolge:

In [3]: ser.str[0]
Out[3]: 
0    L
1    d
2    c
dtype: object

Holen Sie sich die ersten drei Zeichen jeder Zeichenfolge:

In [4]: ser.str[:3]
Out[4]: 
0    Lor
1    dol
2    con
dtype: object

Holen Sie sich das letzte Zeichen jeder Zeichenfolge:

In [5]: ser.str[-1]
Out[5]:
0    m
1    t
2    t
dtype: object

Holen Sie sich die letzten drei Zeichen jeder Zeichenfolge:

In [6]: ser.str[-3:]
Out[6]: 
0    sum
1    met
2    lit
dtype: object

Holen Sie sich alle anderen Zeichen der ersten 10 Zeichen:

In [7]: ser.str[:10:2]
Out[7]: 
0    Lrmis
1    dlrst
2    cnett
dtype: object

Pandas verhalten sich beim Umgang mit Slices und Indizes ähnlich wie Python. Wenn sich beispielsweise ein Index außerhalb des Bereichs befindet, gibt Python einen Fehler aus:

In [8]:'Lorem ipsum'[12]
# IndexError: string index out of range

Wenn sich ein Slice außerhalb des Bereichs befindet, wird jedoch eine leere Zeichenfolge zurückgegeben:

In [9]: 'Lorem ipsum'[12:15]
Out[9]: ''

Pandas gibt NaN zurück, wenn ein Index außerhalb des gültigen Bereichs liegt:

In [10]: ser.str[12]
Out[10]:
0    NaN
1      e
2      a
dtype: object

Und gibt einen leeren String zurück, wenn ein Slice außerhalb des Bereichs liegt:

In [11]: ser.str[12:15]
Out[11]:
0       
1     et
2    adi
dtype: object

Überprüfen des Inhalts einer Zeichenfolge

str.contains() -Methode kann verwendet werden, um zu überprüfen, ob in jedem String einer Serie ein Muster vorkommt. str.startswith() Methoden str.startswith() und str.endswith() können auch als speziellere Versionen verwendet werden.

In [1]: animals = pd.Series(['cat', 'dog', 'bear', 'cow', 'bird', 'owl', 'rabbit', 'snake'])

Prüfen Sie, ob Zeichenketten den Buchstaben "a" enthalten:

In [2]: animals.str.contains('a')
Out[2]:
0      True
1     False
2      True
3     False
4     False
5     False
6      True
7      True
8      True
dtype: bool

Dies kann als boolescher Index verwendet werden, um nur die Tiere zurückzugeben, die den Buchstaben 'a' enthalten:

In [3]: animals[animals.str.contains('a')]
Out[3]: 
0       cat
2      bear
6    rabbit
7     snake
dtype: object

str.startswith Methoden str.startswith und str.endswith funktionieren ähnlich, akzeptieren jedoch auch Tupel als Eingaben.

In [4]: animals[animals.str.startswith(('b', 'c'))]
# Returns animals starting with 'b' or 'c'
Out[4]: 
0     cat
2    bear
3     cow
4    bird
dtype: object

Großschreibung von Strings

In [1]: ser = pd.Series(['lORem ipSuM', 'Dolor sit amet', 'Consectetur Adipiscing Elit'])

Alle in Großbuchstaben umwandeln:

In [2]: ser.str.upper()
Out[2]:
0                    LOREM IPSUM
1                 DOLOR SIT AMET
2    CONSECTETUR ADIPISCING ELIT
dtype: object

Alles klein geschrieben:

In [3]: ser.str.lower()
Out[3]:
0                    lorem ipsum
1                 dolor sit amet
2    consectetur adipiscing elit
dtype: object

Schreibe den ersten Buchstaben groß und schreibe den Rest in Kleinbuchstaben:

In [4]: ser.str.capitalize()
Out[4]:
0                    Lorem ipsum
1                 Dolor sit amet
2    Consectetur adipiscing elit
dtype: object

Wandeln Sie jede Zeichenfolge in ein Titelfeld um (Großbuchstabe des ersten Zeichens jedes Wortes in jeder Zeichenfolge, Kleinschreibung der verbleibenden Zeichen)

In [5]: ser.str.title()
Out[5]:
0                    Lorem Ipsum
1                 Dolor Sit Amet
2    Consectetur Adipiscing Elit
dtype: object

Tauschen Sie Fälle (konvertieren Sie Kleinbuchstaben in Großbuchstaben und umgekehrt):

In [6]: ser.str.swapcase()
Out[6]:
0                    LorEM IPsUm
1                 dOLOR SIT AMET
2    cONSECTETUR aDIPISCING eLIT
dtype: object

Abgesehen von diesen Methoden, die die Großschreibung ändern, können verschiedene Methoden zur Überprüfung der Großschreibung von Strings verwendet werden.

In [7]: ser = pd.Series(['LOREM IPSUM', 'dolor sit amet', 'Consectetur Adipiscing Elit'])

Prüfen Sie, ob alles Kleinbuchstaben ist:

In [8]: ser.str.islower()
Out[8]:
0    False
1     True
2    False
dtype: bool

Ist alles in Großbuchstaben:

In [9]: ser.str.isupper()
Out[9]:
0     True
1    False
2    False
dtype: bool

Handelt es sich um eine in einem Titel enthaltene Zeichenfolge:

In [10]: ser.str.istitle()
Out[10]:
0    False
1    False
2     True
dtype: bool


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow