如何在我的数据帧中将字符串转换为浮点数? (蟒蛇)

时间:2018-01-26 14:55:22

标签: python pandas

我在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

我该如何解决?

1 个答案:

答案 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()]