Python pandas未将类型字符串转换为浮点

Python pandas未将类型字符串转换为浮点,python,pandas,dataframe,Python,Pandas,Dataframe,我已尝试用空白字段替换“,” df['amount'].replace(',','', regex=True).astype(float) 错误: ValueError: could not convert string to float: df['amount'] = df['amount'].astype('float64') 我仍然会犯同样的错误。示例数据如下所示: 5000.00和100000.234值 如何将其转换为浮动 顺便说一句,我正在读一个json文件!只有文件的路径。我

我已尝试用空白字段替换“,”

df['amount'].replace(',','', regex=True).astype(float)
错误:

ValueError: could not convert string to float: 

df['amount'] = df['amount'].astype('float64')
我仍然会犯同样的错误。示例数据如下所示: 5000.00100000.234

如何将其转换为浮动


顺便说一句,我正在读一个json文件!只有文件的路径。

我认为需要重新分配:

df = pd.DataFrame({'amount':['5,000.00', '1,00,000.234']})

df['amount'] = df['amount'].replace(',','', regex=True).astype('float64')
print (df)
       amount
0    5000.000
1  100000.234
如果不起作用,请检查是否存在一些错误值:

df = pd.DataFrame({'amount':['5,000.00', '1,00,000.234', 'a']})
print (df)
         amount
0      5,000.00
1  1,00,000.234
2             a

print (df.loc[pd.to_numeric(df['amount'].replace(',','', regex=True), errors='coerce').isnull(), 'amount'])
2    a
Name: amount, dtype: object
然后可以将错误值转换为
NaN
s:

df = pd.DataFrame({'amount':['5,000.00', '1,00,000.234', 'a']})
print (df)
         amount
0      5,000.00
1  1,00,000.234
2             a

df['amount'] = pd.to_numeric(df['amount'].replace(',','', regex=True), errors='coerce', downcast='float')
print (df)

       amount
0    5000.000
1  100000.234
2         NaN

如果使用
pd.read_csv
for
DataFrame
添加参数
数千=','

df = pd.read_csv(file, thousands=',')

使用
pandas.to_numeric
pd.Series.str.replace
可用于:

s = pd.Series(['5,000.00', '1,00,000.234'])

s = pd.to_numeric(s.str.replace(',', ''), downcast='float')

print(s)

# 0      5000.000
# 1    100000.234
# dtype: float64

然而,如果可能的话,更好的办法是从源头上解决这个问题。例如,
pandas.read\u csv
具有参数,允许您考虑此类数字格式。

我们的值(如5000.00)将转换为5000.00作为浮点:

df['drawing Amt.]=[df['drawing Amt.]中i的浮动(str(i)。替换(“,”,”)]

我正在使用json,第一个答案不起作用,但第二个答案起作用,但它不会将数据类型转换为float。请稍候。我解释得更多。@jason-我认为第二段是为了检查有问题的值,然后我添加了解决方案,将它们重新拼贴到
NaN
s。请检查一下。@jason-不用它试试,如果效果不错的话,我想你可以毫无问题地移除它。酷。谢谢你的提醒!!:)你太快太好了!!!再次感谢!