Python 将列(str)转换为(Float),ValueError:无法将字符串转换为Float:';空'; 对不起,各位,我知道这个问题以前已经被回答过了,我尝试了所有的答案,也做了4个小时的研究和尝试。我做不到。

Python 将列(str)转换为(Float),ValueError:无法将字符串转换为Float:';空'; 对不起,各位,我知道这个问题以前已经被回答过了,我尝试了所有的答案,也做了4个小时的研究和尝试。我做不到。,python,pandas,Python,Pandas,我相信我的数据有点奇怪 因此,根据我的数据和尝试: x = pd.DataFrame({ "Cost" : [ "83.53462540716612" , "0.0" , "66.6315396408911" , "340.9281334351922" , "181.8128056341571" , "0.00" ] ###Attempt 0 # x["Cost"] = x["Cost"].str.replace(' ', '') # x["Cost"] = x["Cost"].str.re

我相信我的数据有点奇怪

因此,根据我的数据和尝试:

x = pd.DataFrame({ "Cost" : [ "83.53462540716612" , "0.0" , "66.6315396408911" , "340.9281334351922" , "181.8128056341571" , "0.00" ]

###Attempt 0
# x["Cost"] = x["Cost"].str.replace(' ', '')
# x["Cost"] = x["Cost"].str.replace(',', '').astype(float)


###Attempt 1
#x = x.where((pd.notnull(x)), None)
#x["Cost"]  = float(len(x["Cost"]))


###Attempt 2
#x["Cost"].isdecimal()
#x = [float(x) for x in range(len(x["Cost"])) ]


###Attempt 3
#[float(x) for x in x["Cost"].strip().split()]


###Attempt 4
#x["Cost2"] = x["Cost"].append([float(str(x)) for x in x["Cost"].split(' ') if len(x)>1])


###Attempt 5
#x["Cost"]  = pd.get_dummies(x["Cost"]).values


我的尝试:

x = pd.DataFrame({ "Cost" : [ "83.53462540716612" , "0.0" , "66.6315396408911" , "340.9281334351922" , "181.8128056341571" , "0.00" ]

###Attempt 0
# x["Cost"] = x["Cost"].str.replace(' ', '')
# x["Cost"] = x["Cost"].str.replace(',', '').astype(float)


###Attempt 1
#x = x.where((pd.notnull(x)), None)
#x["Cost"]  = float(len(x["Cost"]))


###Attempt 2
#x["Cost"].isdecimal()
#x = [float(x) for x in range(len(x["Cost"])) ]


###Attempt 3
#[float(x) for x in x["Cost"].strip().split()]


###Attempt 4
#x["Cost2"] = x["Cost"].append([float(str(x)) for x in x["Cost"].split(' ') if len(x)>1])


###Attempt 5
#x["Cost"]  = pd.get_dummies(x["Cost"]).values


什么都不管用。。 获取错误,例如:

ValueError: could not convert string to float: 'Null'

# else, only a single dtype is given
# _astype_nansafe works fine with 1-d only
# TODO(extension)
# Explicit copy, or required since NumPy can't view from / to object.

您可以使用和强制错误,以便在无法转换时,这些错误会导致
NaN

x = pd.DataFrame({ "Cost" : [ "Null", "1,083.53462540716612" , "0.0" , "66.6315396408911" , "340.9281334351922" , "181.8128056341571" , "0.00" ]})

x['Cost'] = pd.to_numeric(x['Cost'].str.replace(",", ""), errors='coerce')
>>> x

          Cost
0          NaN
1  1083.534625
2     0.000000
3    66.631540
4   340.928133
5   181.812806
6     0.000000

您没有尝试将pd.转换为数值
pd.to_numeric(x.Cost)
也许您的数据中有
Null
值,您应该在转换之前处理它们?@yatu不,我现在就试试!!多谢各位@Marcos,因此我尝试在
##尝试1 x处删除空值。其中((pd.notnull(x)),无)
谢谢Alexander,它成功了!!只需将其编辑为数字(x['Cost'].str.replace(“,”,”),errors='compresse')