Python Pandas - Arbeiten mit Textdaten

In diesem Kapitel werden wir die Zeichenfolgenoperationen mit unserer Basisreihe / unserem Index diskutieren. In den folgenden Kapiteln erfahren Sie, wie Sie diese Zeichenfolgenfunktionen auf den DataFrame anwenden.

Pandas bietet eine Reihe von Zeichenfolgenfunktionen, die die Bearbeitung von Zeichenfolgendaten vereinfachen. Am wichtigsten ist, dass diese Funktionen fehlende / NaN-Werte ignorieren (oder ausschließen).

Fast alle diese Methoden funktionieren mit Python-String-Funktionen (siehe: https://docs.python.org/3/library/stdtypes.html#string-methods). Konvertieren Sie also das Serienobjekt in ein Zeichenfolgenobjekt und führen Sie die Operation aus.

Lassen Sie uns nun sehen, wie jede Operation ausgeführt wird.

Sr.Nr. Bedienungsanleitung
1

lower()

Konvertiert Zeichenfolgen in der Serie / im Index in Kleinbuchstaben.

2

upper()

Konvertiert Zeichenfolgen in der Serie / im Index in Großbuchstaben.

3

len()

Berechnet die Stringlänge ().

4

strip()

Hilft dabei, Leerzeichen (einschließlich Zeilenumbrüche) von beiden Zeichenfolgen in der Reihe / im Index von beiden Seiten zu entfernen.

5

split(' ')

Teilt jede Zeichenfolge mit dem angegebenen Muster.

6

cat(sep=' ')

Verkettet die Serien- / Indexelemente mit dem angegebenen Trennzeichen.

7

get_dummies()

Gibt den DataFrame mit One-Hot-Encoded-Werten zurück.

8

contains(pattern)

Gibt für jedes Element einen booleschen Wert True zurück, wenn die Teilzeichenfolge im Element enthalten ist, andernfalls False.

9

replace(a,b)

Ersetzt den Wert a mit dem Wert b.

10

repeat(value)

Wiederholt jedes Element mit der angegebenen Anzahl von Malen.

11

count(pattern)

Gibt die Anzahl der Erscheinungen des Musters in jedem Element zurück.

12

startswith(pattern)

Gibt true zurück, wenn das Element in der Serie / im Index mit dem Muster beginnt.

13

endswith(pattern)

Gibt true zurück, wenn das Element in der Reihe / im Index mit dem Muster endet.

14

find(pattern)

Gibt die erste Position des ersten Auftretens des Musters zurück.

15

findall(pattern)

Gibt eine Liste aller Vorkommen des Musters zurück.

16

swapcase

Vertauscht das Gehäuse unten / oben.

17

islower()

Überprüft, ob alle Zeichen in jeder Zeichenfolge in der Reihe / im Index in Kleinbuchstaben geschrieben sind oder nicht. Gibt Boolean zurück

18

isupper()

Überprüft, ob alle Zeichen in jeder Zeichenfolge in der Reihe / im Index in Großbuchstaben geschrieben sind oder nicht. Gibt Boolean zurück.

19

isnumeric()

Überprüft, ob alle Zeichen in jeder Zeichenfolge in der Serie / im Index numerisch sind. Gibt Boolean zurück.

Lassen Sie uns nun eine Reihe erstellen und sehen, wie alle oben genannten Funktionen funktionieren.

import pandas as pd
import numpy as np

s = pd.Series(['Tom', 'William Rick', 'John', 'Alber@t', np.nan, '1234','SteveSmith'])

print s

Es ist output ist wie folgt -

0            Tom
1   William Rick
2           John
3        Alber@t
4            NaN
5           1234
6    Steve Smith
dtype: object

niedriger()

import pandas as pd
import numpy as np

s = pd.Series(['Tom', 'William Rick', 'John', 'Alber@t', np.nan, '1234','SteveSmith'])

print s.str.lower()

Es ist output ist wie folgt -

0            tom
1   william rick
2           john
3        alber@t
4            NaN
5           1234
6    steve smith
dtype: object

Oberer, höher()

import pandas as pd
import numpy as np

s = pd.Series(['Tom', 'William Rick', 'John', 'Alber@t', np.nan, '1234','SteveSmith'])

print s.str.upper()

Es ist output ist wie folgt -

0            TOM
1   WILLIAM RICK
2           JOHN
3        ALBER@T
4            NaN
5           1234
6    STEVE SMITH
dtype: object

len ()

import pandas as pd
import numpy as np

s = pd.Series(['Tom', 'William Rick', 'John', 'Alber@t', np.nan, '1234','SteveSmith'])
print s.str.len()

Es ist output ist wie folgt -

0    3.0
1   12.0
2    4.0
3    7.0
4    NaN
5    4.0
6   10.0
dtype: float64

Streifen()

import pandas as pd
import numpy as np
s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
print s
print ("After Stripping:")
print s.str.strip()

Es ist output ist wie folgt -

0            Tom
1   William Rick
2           John
3        Alber@t
dtype: object

After Stripping:
0            Tom
1   William Rick
2           John
3        Alber@t
dtype: object

Split (Muster)

import pandas as pd
import numpy as np
s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
print s
print ("Split Pattern:")
print s.str.split(' ')

Es ist output ist wie folgt -

0            Tom
1   William Rick
2           John
3        Alber@t
dtype: object

Split Pattern:
0   [Tom, , , , , , , , , , ]
1   [, , , , , William, Rick]
2   [John]
3   [Alber@t]
dtype: object

Katze (sep = Muster)

import pandas as pd
import numpy as np

s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])

print s.str.cat(sep='_')

Es ist output ist wie folgt -

Tom _ William Rick_John_Alber@t

get_dummies ()

import pandas as pd
import numpy as np

s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])

print s.str.get_dummies()

Es ist output ist wie folgt -

William Rick   Alber@t   John   Tom
0             0         0      0     1
1             1         0      0     0
2             0         0      1     0
3             0         1      0     0

enthält ()

import pandas as pd

s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])

print s.str.contains(' ')

Es ist output ist wie folgt -

0   True
1   True
2   False
3   False
dtype: bool

ersetzen (a, b)

import pandas as pd
s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
print s
print ("After replacing @ with $:")
print s.str.replace('@','$')

Es ist output ist wie folgt -

0   Tom
1   William Rick
2   John
3   Alber@t
dtype: object

After replacing @ with $:
0   Tom
1   William Rick
2   John
3   Alber$t
dtype: object

wiederholen (Wert)

import pandas as pd

s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])

print s.str.repeat(2)

Es ist output ist wie folgt -

0   Tom            Tom
1   William Rick   William Rick
2                  JohnJohn
3                  Alber@tAlber@t
dtype: object

Anzahl (Muster)

import pandas as pd
 
s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])

print ("The number of 'm's in each string:")
print s.str.count('m')

Es ist output ist wie folgt -

The number of 'm's in each string:
0    1
1    1
2    0
3    0

Start mit (Muster)

import pandas as pd

s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])

print ("Strings that start with 'T':")
print s.str. startswith ('T')

Es ist output ist wie folgt -

0  True
1  False
2  False
3  False
dtype: bool

endet mit (Muster)

import pandas as pd
s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
print ("Strings that end with 't':")
print s.str.endswith('t')

Es ist output ist wie folgt -

Strings that end with 't':
0  False
1  False
2  False
3  True
dtype: bool

find (Muster)

import pandas as pd

s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])

print s.str.find('e')

Es ist output ist wie folgt -

0  -1
1  -1
2  -1
3   3
dtype: int64

"-1" zeigt an, dass im Element kein solches Muster verfügbar ist.

findall (Muster)

import pandas as pd

s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])

print s.str.findall('e')

Es ist output ist wie folgt -

0 []
1 []
2 []
3 [e]
dtype: object

Die Nullliste ([]) zeigt an, dass im Element kein solches Muster verfügbar ist.

Swapcase ()

import pandas as pd

s = pd.Series(['Tom', 'William Rick', 'John', 'Alber@t'])
print s.str.swapcase()

Es ist output ist wie folgt -

0  tOM
1  wILLIAM rICK
2  jOHN
3  aLBER@T
dtype: object

ist tiefer()

import pandas as pd

s = pd.Series(['Tom', 'William Rick', 'John', 'Alber@t'])
print s.str.islower()

Es ist output ist wie folgt -

0  False
1  False
2  False
3  False
dtype: bool

isupper ()

import pandas as pd

s = pd.Series(['Tom', 'William Rick', 'John', 'Alber@t'])

print s.str.isupper()

Es ist output ist wie folgt -

0  False
1  False
2  False
3  False
dtype: bool

isnumerisch ()

import pandas as pd

s = pd.Series(['Tom', 'William Rick', 'John', 'Alber@t'])

print s.str.isnumeric()

Es ist output ist wie folgt -

0  False
1  False
2  False
3  False
dtype: bool