将 "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.
我的数据集中有以下列。 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.