Почему возникает ошибка "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().