Python Pandas - Travailler avec des données texte
Dans ce chapitre, nous aborderons les opérations sur les chaînes avec notre série / index de base. Dans les chapitres suivants, nous apprendrons comment appliquer ces fonctions de chaîne sur le DataFrame.
Pandas fournit un ensemble de fonctions de chaîne qui facilitent l'utilisation des données de chaîne. Plus important encore, ces fonctions ignorent (ou excluent) les valeurs / NaN manquantes.
Presque toutes ces méthodes fonctionnent avec des fonctions de chaîne Python (voir: https://docs.python.org/3/library/stdtypes.html#string-methods). Donc, convertissez l'objet série en objet chaîne, puis effectuez l'opération.
Voyons maintenant comment chaque opération se déroule.
Sr. Non | Description de la fonction |
---|---|
1 | lower() Convertit les chaînes de la série / index en minuscules. |
2 | upper() Convertit les chaînes de la série / de l'index en majuscules. |
3 | len() Calcule la longueur de la chaîne (). |
4 | strip() Aide à supprimer les espaces (y compris les sauts de ligne) de chaque chaîne de la série / index des deux côtés. |
5 | split(' ') Divise chaque chaîne avec le modèle donné. |
6 | cat(sep=' ') Concatène les éléments series / index avec un séparateur donné. |
sept | get_dummies() Renvoie le DataFrame avec des valeurs One-Hot Encoded. |
8 | contains(pattern) Renvoie une valeur booléenne True pour chaque élément si la sous-chaîne contient dans l'élément, sinon False. |
9 | replace(a,b) Remplace la valeur a avec la valeur b. |
dix | repeat(value) Répète chaque élément avec un nombre de fois spécifié. |
11 | count(pattern) Renvoie le nombre d'apparitions du motif dans chaque élément. |
12 | startswith(pattern) Renvoie true si l'élément de la série / de l'index commence par le modèle. |
13 | endswith(pattern) Renvoie true si l'élément de la série / de l'index se termine par le modèle. |
14 | find(pattern) Renvoie la première position de la première occurrence du motif. |
15 | findall(pattern) Renvoie une liste de toutes les occurrences du modèle. |
16 | swapcase Permute le boîtier inférieur / supérieur. |
17 | islower() Vérifie si tous les caractères de chaque chaîne de la série / de l'index sont en minuscules ou non. Renvoie une valeur booléenne |
18 | isupper() Vérifie si tous les caractères de chaque chaîne de la série / index sont en majuscules ou non. Renvoie Boolean. |
19 | isnumeric() Vérifie si tous les caractères de chaque chaîne de la série / de l'index sont numériques. Renvoie Boolean. |
Créons maintenant une série et voyons comment fonctionnent toutes les fonctions ci-dessus.
import pandas as pd
import numpy as np
s = pd.Series(['Tom', 'William Rick', 'John', 'Alber@t', np.nan, '1234','SteveSmith'])
print s
Ses output est comme suit -
0 Tom
1 William Rick
2 John
3 Alber@t
4 NaN
5 1234
6 Steve Smith
dtype: object
inférieur()
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()
Ses output est comme suit -
0 tom
1 william rick
2 john
3 alber@t
4 NaN
5 1234
6 steve smith
dtype: object
plus haut()
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()
Ses output est comme suit -
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()
Ses output est comme suit -
0 3.0
1 12.0
2 4.0
3 7.0
4 NaN
5 4.0
6 10.0
dtype: float64
bande()
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()
Ses output est comme suit -
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 (motif)
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(' ')
Ses output est comme suit -
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
chat (sep = motif)
import pandas as pd
import numpy as np
s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
print s.str.cat(sep='_')
Ses output est comme suit -
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()
Ses output est comme suit -
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
contient ()
import pandas as pd
s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
print s.str.contains(' ')
Ses output est comme suit -
0 True
1 True
2 False
3 False
dtype: bool
remplacer (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('@','$')
Ses output est comme suit -
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
répéter (valeur)
import pandas as pd
s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
print s.str.repeat(2)
Ses output est comme suit -
0 Tom Tom
1 William Rick William Rick
2 JohnJohn
3 Alber@tAlber@t
dtype: object
count (modèle)
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')
Ses output est comme suit -
The number of 'm's in each string:
0 1
1 1
2 0
3 0
commence avec (motif)
import pandas as pd
s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
print ("Strings that start with 'T':")
print s.str. startswith ('T')
Ses output est comme suit -
0 True
1 False
2 False
3 False
dtype: bool
se termine avec (motif)
import pandas as pd
s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
print ("Strings that end with 't':")
print s.str.endswith('t')
Ses output est comme suit -
Strings that end with 't':
0 False
1 False
2 False
3 True
dtype: bool
trouver (motif)
import pandas as pd
s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
print s.str.find('e')
Ses output est comme suit -
0 -1
1 -1
2 -1
3 3
dtype: int64
"-1" indique qu'un tel modèle n'est pas disponible dans l'élément.
findall (modèle)
import pandas as pd
s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
print s.str.findall('e')
Ses output est comme suit -
0 []
1 []
2 []
3 [e]
dtype: object
La liste nulle ([]) indique qu'aucun modèle de ce type n'est disponible dans l'élément.
casier ()
import pandas as pd
s = pd.Series(['Tom', 'William Rick', 'John', 'Alber@t'])
print s.str.swapcase()
Ses output est comme suit -
0 tOM
1 wILLIAM rICK
2 jOHN
3 aLBER@T
dtype: object
est plus bas()
import pandas as pd
s = pd.Series(['Tom', 'William Rick', 'John', 'Alber@t'])
print s.str.islower()
Ses output est comme suit -
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()
Ses output est comme suit -
0 False
1 False
2 False
3 False
dtype: bool
isnumérique ()
import pandas as pd
s = pd.Series(['Tom', 'William Rick', 'John', 'Alber@t'])
print s.str.isnumeric()
Ses output est comme suit -
0 False
1 False
2 False
3 False
dtype: bool