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?
Utilisez la méthode vectorisée str
replace
:
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.
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
Remplacer toutes les virgules par des traits de soulignement dans les noms de colonnes
data.columns= data.columns.str.replace(' ','_',regex=True)