我有一个Pandas数据框,只有一列字符串。我想把列数据转换成float。由于格式的原因,某些值无法转换为浮点值。我想从结果中省略这些“非法字符串”,只提取可以合法地重新转换为float的值。起始数据:
test=pd.DataFrame()
test.loc[0,'Value']='<3'
test.loc[1,'Value']='10'
test.loc[2,'Value']='Detected'
test.loc[3,'Value']=''
所需的输出仅包含可以重新转换为浮点数的字符串(在本例中为10):
cleanDF=test['Value'].astype(float)
cleanDF
0 10
Name: Value, dtype: float64
当然,这会对用于浮点转换的非法字符串引发一个预期的错误:
ValueError: could not convert string to float: <3
如果dataframe很大并且在“Value”中包含许多非法字符串,是否有一种简单的方法来解决此问题?
谢谢。
您可以尝试使用DataFrame的
apply
。编写包含异常处理程序的函数并将其应用于数据帧。相关问题 更多 >
编程相关推荐