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

所以我浏览了一个用户在这里提供的心脏病分类教程。在学习本教程时,我遇到了一个问题并且找不到解决方案。我收到一条错误消息: "ValueError: could not convert string to float: 'thal'" 。这是数据集


这是程序:


import tensorflow as tf

import pandas as pd

import numpy as np

import matplotlib.pyplot as plt



hd = pd.read_csv("heart.csv", sep=",", header=None)

hd.iloc[:,1].describe()



IVs = hd.iloc[:,2:13]


DV = hd.iloc[:,1]

DV = pd.get_dummies(DV)  # One-Hot Encoding - required by classification algorithms


# In order to feed the data into a Neural Network, I must turn the data into numpy objects

IVs = IVs.values

DV = DV.values


from sklearn.model_selection import train_test_split


X_train, X_test, y_train, y_test = train_test_split(IVs, DV, test_size=0.25, random_state=173)


print(X_train.shape, y_train.shape)

print(X_test.shape, y_test.shape)



# Scale the variables using Z-scores


from sklearn.preprocessing import StandardScaler


scaler = StandardScaler()  


X_train = scaler.fit_transform(X_train) 


X_test = scaler.transform(X_test) 


侃侃尔雅
浏览 442回答 2
2回答

肥皂起泡泡

在hd = pd.read_csv("heart.csv", sep=",", header=None)您指定header=None,它会忽略列的标签,从而创建一个混合文本和数字的数组。删除此参数应该可以解决您的问题,即hd = pd.read_csv("heart.csv", sep=",")或者,您可以使用以下命令显式指定 csv 文件中标题的行索引 header=0

素胚勾勒不出你

正如底部的消息所说:ValueError: could not convert string to float: 'thal'这似乎是一个数据类型错误。StandardScaler 需要数字(浮点)数据,但它在某处得到一个字符串并返回错误。您可以执行多种操作。如果您有分类变量,请对它们进行 One-Hot 编码。也许您可以强制一列属于某种数据类型。PS:加载熊猫数据框后,您可以使用hd.dtypes. 检查 IV 中是否有一些非数字列。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python