将 "object" 转换为 "float" 后所有值都是 NaN - 如何解决这个问题?

After convert "object" to "float" all values are NaN - how to solve this?

我的数据集中有以下列。 Dtype 是“对象”。我想将其转换为浮点数,但可能需要一些帮助。

Value
6.400,00
5.200,00
4.800,00
4.800,00
8.809,60

首先我把$.

分开了
def split(x):
    return x.split("$")[1]
df["Value_conv"] = df["Value"].apply(split)


Value_conv
166.400,00
135.200,00
124.800,00
124.800,00
118.809,60

之后我尝试了 pd.to_numeric

df['Value_conv'] = pd.to_numeric((df['Value_conv']), errors='coerce')

结果是 Value_conv 现在是 float64。但是:所有值都是 NAN。

Value_conv
NaN
NaN
NaN
NaN
NaN

如何将此列转换为浮点数但值不是 NaN?在做了一些 Google 之后,我相信它与分隔符“.”有关。和“,”但我就是想不出解决它的方法。感谢您的帮助!

它不起作用,因为有一个逗号。如果你想要逗号之前和美元符号之后的值,试试这个:

df["Value_conv"] = df["Value"].str.split('$').str[1].str.split(',').str[0].astype(float)

它给出 None 的原因是因为 errors='coerce' 给出 None 如果它不是 integer/float 这样的。

documentation所述:

它说:

If ‘coerce’, then invalid parsing will be set as NaN.