use*_*207 7 python string series python-3.x pandas
我有一个pandas数据框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%
Run Code Online (Sandbox Code Playgroud)
我想%从列中的所有行中删除字符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
Run Code Online (Sandbox Code Playgroud)
我使用的是Python v3.6.
使用str.replace会工作:
df['Grade'] = df['Grade'].str.replace('%', '')
Run Code Online (Sandbox Code Playgroud)
您可以使用字符串切片,然后通过以下方式转换为数字类型pd.to_numeric:
df['Grade'] = pd.to_numeric(df['Grade'].astype(str).str[:-1], errors='coerce')
Run Code Online (Sandbox Code Playgroud)
建议转换为float,因为一系列字符串将保存在通用且低效的object数据类型中,而数字类型允许向量化操作。
为什么不str.rstrip():
df['Grade'] = df['Grade'].str.rstrip('%')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5710 次 |
| 最近记录: |