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', '[email protected]', np.nan, '1234','SteveSmith'])

print s

Ses output est comme suit -

0            Tom
1   William Rick
2           John
3        [email protected]
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', '[email protected]', np.nan, '1234','SteveSmith'])

print s.str.lower()

Ses output est comme suit -

0            tom
1   william rick
2           john
3        [email protected]
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', '[email protected]', np.nan, '1234','SteveSmith'])

print s.str.upper()

Ses output est comme suit -

0            TOM
1   WILLIAM RICK
2           JOHN
3        [email protected]
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', '[email protected]', 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', '[email protected]'])
print s
print ("After Stripping:")
print s.str.strip()

Ses output est comme suit -

0            Tom
1   William Rick
2           John
3        [email protected]
dtype: object

After Stripping:
0            Tom
1   William Rick
2           John
3        [email protected]
dtype: object

split (motif)

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

Ses output est comme suit -

0            Tom
1   William Rick
2           John
3        [email protected]
dtype: object

Split Pattern:
0   [Tom, , , , , , , , , , ]
1   [, , , , , William, Rick]
2   [John]
3   [[email protected]]
dtype: object

chat (sep = motif)

import pandas as pd
import numpy as np

s = pd.Series(['Tom ', ' William Rick', 'John', '[email protected]'])

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

Ses output est comme suit -

Tom _ William [email protected]

get_dummies ()

import pandas as pd
import numpy as np

s = pd.Series(['Tom ', ' William Rick', 'John', '[email protected]'])

print s.str.get_dummies()

Ses output est comme suit -

William Rick   [email protected]   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', '[email protected]'])

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', '[email protected]'])
print s
print ("After replacing @ with $:")
print s.str.replace('@','$')

Ses output est comme suit -

0   Tom
1   William Rick
2   John
3   [email protected]
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', '[email protected]'])

print s.str.repeat(2)

Ses output est comme suit -

0   Tom            Tom
1   William Rick   William Rick
2                  JohnJohn
3                  [email protected]@t
dtype: object

count (modèle)

import pandas as pd
 
s = pd.Series(['Tom ', ' William Rick', 'John', '[email protected]'])

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', '[email protected]'])

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', '[email protected]'])
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', '[email protected]'])

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', '[email protected]'])

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', '[email protected]'])
print s.str.swapcase()

Ses output est comme suit -

0  tOM
1  wILLIAM rICK
2  jOHN
3  [email protected]
dtype: object

est plus bas()

import pandas as pd

s = pd.Series(['Tom', 'William Rick', 'John', '[email protected]'])
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', '[email protected]'])

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', '[email protected]'])

print s.str.isnumeric()

Ses output est comme suit -

0  False
1  False
2  False
3  False
dtype: bool