pandas dataframe df
があり、その内容は次のとおりです。
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%
Grade
列のすべての行から%
文字を削除してください。結果は次のようになります。
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
私はPython v3.6。
文字列スライシングを使用してから、 pd.to_numeric
を使用して数値型に変換できます。
df['Grade'] = pd.to_numeric(df['Grade'].astype(str).str[:-1], errors='coerce')
一連の文字列は一般的で非効率的なfloat
dtypeに保持されるため、object
への変換が推奨されますが、数値型ではベクトル化された操作が許可されます。
str.replace
動作します:
df['Grade'] = df['Grade'].str.replace('%', '')
なぜstr.rstrip()
:
df['Grade'] = df['Grade'].str.rstrip('%')
選択肢を提供している限り、translate
もできます。
df.Grade.str.translate(str.maketrans({'%':''})).astype(float)