#python #csv
#python #csv
Вопрос:
Для текущего проекта я планирую запустить алгоритм scikit-learn Stochastic Graduent Booster над набором CSV, который включает числовые данные.
Однако при вызове строки sgbr.fit(X_train, y_train)
скрипта я получаю ValueError: could not convert string to float:
сообщение без дополнительной информации о соответствующей области, которая не может быть отформатирована.
Я предполагаю, что эта ошибка связана не с самим кодом Python, а скорее с вводом CSV. Однако я уже проверил файл CSV, чтобы подтвердить, что все разделы содержат исключительно числа с плавающей точкой:
У кого-нибудь есть идея, почему ValueError
появляется без дальнейшего указания положения?
Ответ №1:
Я думаю, что нет прямой функции для получения указания положения. вы можете попробовать это для преобразования
print (df)
column
0 01
1 02
2 03
3 04
4 05
5 LS
print (pd.to_numeric(df.column.str, errors='coerce'))
0 1.0
1 2.0
2 3.0
3 4.0
4 5.0
5 NaN
Name: column, dtype: float64
Комментарии:
1. Спасибо за хороший ввод. Я попробовал этот подход, но получаю ошибку
AttributeError: 'DataFrame' object has no attribute 'to_numeric'
. Может ли проблема со строкой для float быть связана с тем фактом, что я используюfillna("")
в коде?2. На самом деле to_numeric не является атрибутом dataframe, но это атрибут пакета pandas. У вас должна быть функция с вводимым числовым значением и выводом другого числового значения (float), но вы указываете вместо числового значения фрейм данных
3. Понял, и вы правы — это решило проблему. Один быстрый последний момент: код выдает ошибку
AttributeError: 'DataFrame' object has no attribute 'column'
— что конкретно вы бы использовали дляcolumn
приведения в соответствие с набором данных CSV?4. Это столбцы, а не столбец
5. БигГ, у тебя все еще есть
column
, неcolumns
. Также я не получаю серию с этим, а скорее массив из одного элемента. Ваш ответ привел к другой ошибке.