Почему возникает ошибка "ValueError: could not convert string to float: 'chevrolet chevelle malibu'" при применении функций для расчета статистики к числовым столбцам в таблице?
Для исправления ошибки "не удается преобразовать строку в число с плавающей запятой" необходимо убедиться, что перед попыткой преобразовать строку в число она содержит только числовые значения и допустимые символы (например, точку или запятую для дробей). Также можно использовать метод проверки и очистки строки от лишних символов перед преобразованием. Ошибка "ValueError: could not convert string to float: 'chevrolet chevelle malibu'" возникает из-за того, что функции для расчета статистики пытаются преобразовать строковые значения, содержащие нечисловые символы, в числа с плавающей запятой. Для решения данной проблемы необходимо предварительно очистить данные от строковых значений или преобразовать их в числовой формат, если это возможно, либо исключить эти значения из расчетов, если они не несут смысловой нагрузки для статистики.
Что значит не обрабатываешь, вот
print(df.replace('?',np.nan).astype(float)Здесь во все фрейме делаешь замену а потом весь фрейм пытаешься привести к типу данных float.
Работай с "числовым подсетом датафрейма".
или заведи отдельную переменную приведи подсет к флоатам и потом группируй. Типа такого
и затем группируй и т.д.df_ = df.loc[:,[nuimeric_column1,numrec_column2]] = df.loc[:,[nuimeric_column1,numrec_column2]].replace('?',np.NaN).astype(float)
Или хочешь чейнить, используй assign рассматривай все колонки по отдельности, при сложныех манипуляциях, которые требуют индивидулаьного подхода, к каждой колонке по отдельности так делают.
( df.assign( numeric1=lambda x: x['numeric1'].replace('?',np.NaN).astype(float), numeric2=lambda x: x['numeric2'].replace('?',np.NaN).astype(float) ) .groupby('Category') .agg(['mean','median']) )
А с чего ты взял, что ты обрабатываешь только колонки mpg и weight?astype(float)ты применяешь ко всему датасету.
Ты бы и сам догадался, если бы не пытался засунуть всю команду в однострочник - у тебя exception бы вылетел как раз на строке с astype().