将对象转换为浮动熊猫时遇到问题

时间:2020-10-21 16:58:56

标签: pandas dataframe jupyter-notebook

我一直在尝试将一列从对象“格式化”为浮动对象。我尝试过这里发布的解决方案很少,但是都没有给我所需的结果。 我已经检查了csv文件,并将该列中的数字格式化为数字。

就这样。我有一些空行(没关系)。这就是我导入数据时的样子 enter image description here

现在第三列(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

enter image description here

这大大减少了我必须处理的数据量。 我知道这并不困难,我只是还没有找到正确的方法来将所有浮子保持在那里。

问候 奥拉富尔

1 个答案:

答案 0 :(得分:1)

我相信您的问题可能源于每个数字中的逗号。在转换为浮点数之前,请尝试使用replace函数。这将用逗号替换逗号,而不会留下可以转换为浮点数的字符串。

number.replace(',', '')