我的数据集中有一系列否定字符串。我想将它们转换为负浮点数,但是得到ValueError: could not convert string to float: '-'
。我想编码格式存在问题,因此我尝试将-
替换为Unicode -
连字符,但还是遇到了相同的错误。
我试图用普通的连字符替换所有可能的Unicode代码,但是没有用。
我使用Python 3.8.1和pandas 1.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='..')
然后我尝试在“纬度”中转换字符串。列以浮点数字。
# convert strings to floats
df['Lat.'] = df['Lat.'].astype(float)
答案 0 :(得分:1)
问题在于,至少有一个'-'
值。就是这样,只是一个连字符,后面没有数字。
您可以这样做:
import numpy as np
df['Lat.'] = df['Lat.'].replace('-',np.nan)
这将起作用:
df['Lat.'] = df['Lat.'].astype(float)