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:无法将字符串转换为浮点数:'62,6'
ValueError:无法将字符串转换为浮点数:''20,99''