【发布时间】:2018-07-16 13:20:09
【问题描述】:
对于下面的数据框,我使用的是代码
df['%'] = ((df['Code Lines'] / df['Code Lines'].sum()) * 100).round(2).astype(str) + '%'
输出
Language # of Files Blank Lines Comment Lines Code Lines %
C++ 15 66 35 354 6.13%
C/C++ Header 1 3 7 4 0.07%
Markdown 6 73 0 142 2.46%
Python 110 1998 2086 4982 86.27%
Tcl/Tk 1 14 18 273 4.73%
YAML 1 0 6 20 0.35%
我正在尝试将 str 转换为 float
df['%'] = df['% of Total (Code Only)'].astype('float64')
遇到错误
文件 "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pandas/core/dtypes/cast.py", 第 730 行,在 astype_nansafe 中 return arr.astype(dtype, copy=True) ValueError: could not convert string to float: '0.35%'
有没有办法将列 % 与符号 % 一起保持为浮点数
【问题讨论】:
-
如果您保留
%符号,它将不会浮动。但是如果你想这样做很容易删除它 -
你应该停止
df['%'] = ((df['Code Lines'] / df['Code Lines'].sum()) * 100).round(2)
标签: python python-3.x pandas