ValueError:无法将字符串转换为浮点数:'2100 - 2850'

Posted

技术标签:

【中文标题】ValueError:无法将字符串转换为浮点数:\'2100 - 2850\'【英文标题】:ValueError: could not convert string to float: '2100 - 2850'ValueError:无法将字符串转换为浮点数:'2100 - 2850' 【发布时间】:2020-10-10 19:26:47 【问题描述】:

我该如何解决这个问题?

import pandas as pd
import numpy as numpy
import matplotlib.pyplot as plt
import seaborn as sns
train = pd.read_csv(r"G:\data_science\input\train.csv")
cat_columns = ['area_type','availability','location','size','society','bath','balcony']
for col in train.columns:
    if col in cat_columns:
        train[col]= train[col].astype('category')
        train[col]= train[col].cat.codes
from sklearn.linear_model import LinearRegression, SGDRegressor
from sklearn.metrics import mean_squared_error
test = pd.read_csv(r"G:\data_science\input\test.csv")
y_train = train['price']
x_train = train.drop('price', axis = 1)
y_test = test['price']
x_test = test.drop('price',axis = 1)

model = LinearRegression()
model.fit(x_train, y_train)
prediction = model.predict(x_test)
prediction

【问题讨论】:

这意味着你在列'2100 - 2850'中不是浮点数。你应该先检查你的数据,看看你有哪些数据类型 train.csv 文件中值为2100-28501 的单元格之一,有一个-(破折号)字符。仔细检查您的文件并删除- 【参考方案1】:

您的所有值都从 csv 文件中读取为 string

现在,您正尝试将某些值转换为 float

但是它遇到的值是'2100 - 2850'

现在您无法将此值转换为float,这就是错误的意思。

请检查一次数据集并解决任何此类垃圾值。

【讨论】:

以上是关于ValueError:无法将字符串转换为浮点数:'2100 - 2850'的主要内容,如果未能解决你的问题,请参考以下文章

ValueError:无法将字符串转换为浮点数:'2100 - 2850'

ValueError:无法将字符串转换为浮点数:'Mme'

ValueError:无法将字符串转换为浮点数:'62,6'

ValueError:无法将字符串转换为浮点数:''20,99''

我收到 ValueError:无法将字符串转换为浮点数:'8,900' [重复]

ValueError:无法将字符串转换为浮点数:'31,950'