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

Python ValueError:无法将字符串转换为浮点:';2100-2850';,python,pandas,machine-learning,scikit-learn,linear-regression,Python,Pandas,Machine Learning,Scikit Learn,Linear Regression,我怎样才能解决这个问题 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'

我怎样才能解决这个问题

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

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

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

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

现在您无法将此值转换为
浮点值
,这就是错误的含义


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

这意味着您在“2100-2850”列中有一个非浮点值。您应该首先检查数据,查看其中一个单元格中有哪些数据类型的值
2100-28501
train.csv
文件中,有一个
-
(破折号)字符。仔细检查文件并删除
-