我的数据集中有一系列的负字符串。我想把它们转换成负浮点数,但是得到了ValueError: could not convert string to float: '-'
。我想编码格式有问题,所以我试着用Unicode -
连字符替换-
,但是还是得到了同样的错误。
我试过用普通的连字符替换所有可能的Unicode代码,但没有成功。
我使用的是Python 3.8.1和Pandas1.0.2。
是否有任何解决方法?
P.S.有一个类似的问题here,但没有帮助。
这里我做了什么:数据集是here,名为“1240K+ HO”,扩展名为. anno。
然后道:
# open file
df = pd.read_table('v42.4.1240K_HO.anno', index_col=0, usecols=['Index',
'Instance ID',
'Master ID',
'Average of 95.4% date range in calBP (defined as 1950 CE)',
'Country',
'Lat.',
'Long.'],
na_values='..')
然后我尝试将'Lat.'列中字符串转换为浮点数
# convert strings to floats
df['Lat.'] = df['Lat.'].astype(float)
2条答案
按热度按时间i7uq4tfw1#
问题是至少有一个
'-'
值。就是这样,只有一个连字符,后面没有数字。您可以执行以下操作:
那么这将工作:
erhoui1w2#
如果仍然出现错误,可以使用强制
pd.to_numeric
将非数字元素转换为NaN。