web-dev-qa-db-fra.com

Python Pandas: Comment remplacer un caractère dans une colonne d'un cadre de données?

J'ai une colonne dans mon dataframe comme ceci:

range
(2,30)
(50,290)
(400,1000)
... 

et je veux remplacer le ',' virgule par '-' dash. J'utilise actuellement cette méthode mais rien n'a changé.

org_info_exc['range'].replace(',','-',inplace=True)

Quelqu'un peut aider?

56
UserYmY

Utilisez la méthode vectorisée strreplace :

In [30]:

df['range'] = df['range'].str.replace(',','-')
df
Out[30]:
      range
0    (2-30)
1  (50-290)

EDIT

Donc, si nous regardons ce que vous avez essayé et pourquoi cela n’a pas fonctionné:

df['range'].replace(',','-',inplace=True)

de la docs nous voyons cette desc:

str ou regex: str: la chaîne correspondant exactement à to_replace sera remplacée par la valeur

Par conséquent, étant donné que les valeurs str ne correspondent pas, aucun remplacement ne se produit, comparez avec ce qui suit:

In [43]:

df = pd.DataFrame({'range':['(2,30)',',']})
df['range'].replace(',','-', inplace=True)
df['range']
Out[43]:
0    (2,30)
1         -
Name: range, dtype: object

nous obtenons ici une correspondance exacte sur la deuxième ligne et le remplacement se produit.

117
EdChum

Pour tous ceux qui arrivent ici de Google, cherchez comment remplacer une chaîne sur toutes les colonnes (par exemple, si l'une d'entre elles comporte plusieurs colonnes, comme la plage de l'OP 'colonne): Pandas a une méthode intégrée replace disponible sur un objet dataframe.

df.replace(',', '-', regex=True)

Source: Docs

13
kevcisme

Remplacer toutes les virgules par des traits de soulignement dans les noms de colonnes

data.columns= data.columns.str.replace(' ','_',regex=True)
0
Rameez Ahmad