我一直在尝试将一列从对象“格式化”为浮动对象。我尝试过这里发布的解决方案很少,但是都没有给我所需的结果。 我已经检查了csv文件,并将该列中的数字格式化为数字。
现在第三列(VísitalaneysluverðsGrunnurfrá1981)是这里的对象。
我试图做
In[1]
cpi['Vísitala neysluverðs Grunnur frá 1981'] = cpi['Vísitala neysluverðs Grunnur frá 1981'].astype(float)
Out[1]
ValueError: could not convert string to float: '100,00'
In[2]
cpi['Vísitala neysluverðs Grunnur frá 1981'] = cpi['Vísitala neysluverðs Grunnur frá 1981'].astype(str).astype(float)
Out[2]
ValueError: could not convert string to float: '100,00'
In[3]
cpi['Vísitala neysluverðs Grunnur frá 1981'] = cpi['Vísitala neysluverðs Grunnur frá 1981'].str().astype('float64')
Out[3]
TypeError: 'StringMethods' object is not callable
唯一没有给我错误的方法是
cpi['Vísitala neysluverðs Grunnur frá 1981'] = pd.to_numeric(cpi['Vísitala neysluverðs Grunnur frá 1981'], errors='coerce')
但是,将所有float值转换为NaN
这大大减少了我必须处理的数据量。 我知道这并不困难,我只是还没有找到正确的方法来将所有浮子保持在那里。
问候 奥拉富尔
答案 0 :(得分:1)
我相信您的问题可能源于每个数字中的逗号。在转换为浮点数之前,请尝试使用replace
函数。这将用逗号替换逗号,而不会留下可以转换为浮点数的字符串。
number.replace(',', '')