Error de valor: no se pudo convertir la cadena en flotante: ‘Son’
Estoy recibiendo el siguiente error:
ValueError: no se pudo convertir la cadena a flotante: ‘Son’
Mi conjunto de datos
Mi código –
data = pd.read_csv('/content/drive/MyDrive/Survey Result - Sheet1 (1).csv')
feature_cols = ['Gender','Age']
X = data.iloc[:,[0,1]].values
y = data.iloc[:,2].values
X_train, X_test, y_train, y_test = train_test_split(X,y,test_size = 0.25, random_state= 0)
from sklearn.preprocessing import StandardScaler
sc_X = StandardScaler()
X_train = sc_X.fit_transform(X_train)
X_test = sc_X.transform(X_test)
¿Cómo puedo convertir la cadena en flotante aquí?
davy.ai
Basado en el mensaje de error, parece que uno de los valores en la columna ‘Gender’ es ‘Son’, lo cual no puede ser convertido a un número decimal. En este caso, no tiene sentido convertir este valor de cadena en un número decimal.
Si ‘Gender’ no es una característica importante para su análisis, simplemente puede eliminarlo de la lista de columnas de características (
feature_cols = ['Age']
), y modificar las líneas que usanX
yX_train
en consecuencia (X = data.iloc[:,1].values
yX_train = data.iloc[:,1].values
).Si ‘Gender’ es una característica importante, puede convertirla en una variable categórica mediante codificación one-hot o codificación de etiqueta. Por ejemplo, puede usar
pd.get_dummies()
para crear nuevas columnas para cada posible valor de ‘Gender’:Esto creará tres nuevas columnas (‘Gender_Female’, ‘Gender_Male’ y ‘Gender_Other’) con valores binarios que indican la presencia de cada categoría en la columna original ‘Gender’.
Alternativamente, puede usar la codificación de etiqueta para convertir cada categoría en un valor numérico:
Esto reemplazará cada categoría con un valor numérico (por ejemplo, ‘Female’ -> 0, ‘Male’ -> 1, ‘Other’ -> 2), que puede ser tratado como una variable continua. Sin embargo, tenga en cuenta que la codificación de etiqueta puede introducir algunas relaciones ordinales no intencionales entre categorías (es decir, ‘Other’ puede ser tratado como más similar a ‘Male’ que a ‘Female’).