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