我在Python中使用我的数据框。 Dataframe看起来像这样:
Timestamp cpu_system Host
2018-01-09 20:03:22 1.3240749835968018 pwp2
2017-09-30 21:03:22 2.0 pwp2
...................................................
当我在这个数据框架上检查dtypes时,我得到了这个:
timestamp object
cpu_system object
host object
dtype: object
我想将cpu_system更改为float。运行此代码:
df[['cpu_system']] = df[['cpu_system']].astype(float)
出现此错误:
ValueError: could not convert string to float: value
我该如何解决?
答案 0 :(得分:1)
您可以先查看以下内容无法转换的值:
print (df[pd.to_numeric(df['cpu_system'], errors='coerce').isnull()])
然后使用带有参数erors='coerce'
的{{3}}将错误值转换为NaN
:
df['cpu_system'] = pd.to_numeric(df['cpu_system'], errors='coerce')
如果需要,可以通过to_numeric
过滤掉有问题的值:
df = df[df['cpu_system'].notnull()]