在我的应用程序中,我收到一个pandas数据帧(比如,block
),它有一个名为est
的列。此列可以包含字符串或浮点数的组合。我需要将列中的所有值转换为浮点数,并使列类型为float64
。我使用以下代码:
block[est].convert_objects(convert_numeric=True)
block[est].astype('float')
这对大多数情况都有效。但是,在一种情况下,est
包含所有空字符串。在这种情况下,执行第一条语句时不会出错,但列中的空字符串仍为空字符串。然后,第二条语句会导致一个错误:ValueError: could not convert string to float:
。
如何修改代码以处理包含所有空字符串的列?
编辑:我知道我可以做block[est].replace("", np.NaN)
,但我想知道是否有什么方法可以做,只要convert_objects
或astype
我不见了。
澄清:出于项目特定原因,我需要使用pandas 0.16.2。
下面是与一些示例数据的交互,演示了失败:
>>> block = pd.DataFrame({"eps":["", ""]})
>>> block = block.convert_objects(convert_numeric=True)
>>> block["eps"]
0
1
Name: eps, dtype: object
>>> block["eps"].astype('float')
...
ValueError: could not convert string to float:
更容易使用:
“强制”将任何值错误转换为
NaN
然后可以应用其他函数而不出现错误:
相关问题 更多 >
编程相关推荐