J'ai un pandas dataframe df
avec le contenu ci-dessous:
Date Factor Expiry Grade
0 12/31/1991 2.138766 3/30/1992 -3.33%
1 10/29/1992 2.031381 2/8/1993 -1.06%
2 5/20/1993 2.075670 6/4/1993 -6.38%
Je voudrais supprimer le %
caractère de toutes les lignes de la colonne Grade
. Le résultat devrait ressembler à ceci:
Date Factor Expiry Grade
0 12/31/1991 2.138766 3/30/1992 -3.33
1 10/29/1992 2.031381 2/8/1993 -1.06
2 5/20/1993 2.075670 6/4/1993 -6.38
J'utilise Python v3.6.
Vous pouvez utiliser le découpage de chaîne, puis convertir en un type numérique via pd.to_numeric
:
df['Grade'] = pd.to_numeric(df['Grade'].astype(str).str[:-1], errors='coerce')
La conversion en float
est recommandée car une série de chaînes sera conservée dans un type générique et inefficace object
, tandis que les types numériques permettent des opérations vectorisées.
En utilisant str.replace
fonctionnerait:
df['Grade'] = df['Grade'].str.replace('%', '')
Pourquoi pas str.rstrip()
:
df['Grade'] = df['Grade'].str.rstrip('%')
Tant que nous proposons des alternatives, nous pouvons également translate
df.Grade.str.translate(str.maketrans({'%':''})).astype(float)