
Vous pouvez utiliser diverses méthodes avec l’accesseur de chaîne (str.xxx()) pour gérer (remplacer, supprimer, etc.) les chaînes de pandas.Series (= une colonne ou une ligne de pandas.DataFrame).
Par exemple, les méthodes suivantes sont disponibles. Vous pouvez appliquer les mêmes méthodes pour les chaînes Python standard (str) à tous les éléments de pandas.Series.
- Remplacez chaque chaîne dans pandas.Series
- Dénudez chaque chaîne en pandas.Série
- str.strip()
- str.lstrip()
- str.rstrip()
- Convertir la casse de chaque chaîne dans pandas.Series
- str.inférieur()
- str.supérieur()
- str. majuscule()
- str.title()
Remplacez chaque chaîne dans pandas.Series
str.replace()
import pandas as pd
s = pd.Series([' a-a-x ', ' b-x-b ', ' x-c-c '])
print(s)
# 0 a-a-x
# 1 b-x-b
# 2 x-c-c
# dtype: object
s_new = s.str.replace('x', 'z')
print(s_new)
# 0 a-a-z
# 1 b-z-b
# 2 z-c-c
# dtype: object
Pour mettre à jour une colonne dans pandas.DataFrame, affectez la nouvelle colonne à la colonne d’origine. Il en va de même pour les autres méthodes.
df = pd.DataFrame([[' a-a-x-1 ', ' a-a-x-2 '],
[' b-x-b-1 ', ' b-x-b-2 '],
[' x-c-c-1 ', ' x-c-c-2 ']],
columns=['col1', 'col2'])
print(df)
# col1 col2
# 0 a-a-x-1 a-a-x-2
# 1 b-x-b-1 b-x-b-2
# 2 x-c-c-1 x-c-c-2
df['col1'] = df['col1'].str.replace('x', 'z')
print(df)
# col1 col2
# 0 a-a-z-1 a-a-x-2
# 1 b-z-b-1 b-x-b-2
# 2 z-c-c-1 x-c-c-2
Si vous souhaitez remplacer non pas une sous-chaîne mais l’élément lui-même, utilisez la méthode replace() de pandas.DataFrame ou pandas.Series.
Dénudez chaque chaîne en pandas.Série
str.strip()
Par défaut, les caractères d’espacement aux extrémités gauche et droite (= caractères d’espacement de début et de fin) sont supprimés.
s_new = s.str.strip()
print(s_new)
# 0 a-a-x
# 1 b-x-b
# 2 x-c-c
# dtype: object
Vous pouvez spécifier les caractères à supprimer. Les caractères de la chaîne spécifiée sont supprimés. Il en va de même pour str.lstrip() et str.rstrip().
s_new = s.str.strip(' x')
print(s_new)
# 0 a-a-
# 1 b-x-b
# 2 -c-c
# dtype: object
Pour pandas.DataFrame :
df['col1'] = df['col1'].str.strip()
print(df)
# col1 col2
# 0 a-a-z-1 a-a-x-2
# 1 b-z-b-1 b-x-b-2
# 2 z-c-c-1 x-c-c-2
str.lstrip()
str.lstrip() ne supprime que les caractères du côté gauche.
s_new = s.str.lstrip()
print(s_new)
# 0 a-a-x
# 1 b-x-b
# 2 x-c-c
# dtype: object
str.rstrip()
str.rstrip() ne supprime que les caractères du côté droit.
s_new = s.str.rstrip()
print(s_new)
# 0 a-a-x
# 1 b-x-b
# 2 x-c-c
# dtype: object
Convertir la casse de chaque chaîne dans pandas.Series
Le pandas.DataFrame suivant est utilisé comme exemple.
s = pd.Series(['Hello World', 'hello world', 'HELLO WORLD'])
print(s)
# 0 Hello World
# 1 hello world
# 2 HELLO WORLD
# dtype: object
str.inférieur()
s_new = s.str.lower()
print(s_new)
# 0 hello world
# 1 hello world
# 2 hello world
# dtype: object
str.supérieur()
s_new = s.str.upper()
print(s_new)
# 0 HELLO WORLD
# 1 HELLO WORLD
# 2 HELLO WORLD
# dtype: object
str. majuscule()
s_new = s.str.capitalize()
print(s_new)
# 0 Hello world
# 1 Hello world
# 2 Hello world
# dtype: object
str.title()
s_new = s.str.title()
print(s_new)
# 0 Hello World
# 1 Hello World
# 2 Hello World
# dtype: object