Проблема с использованием функций interpolate() и mean() для устранения NaN переменных

Как правило, перед выполнением любой задачи на анализ данных требуется проверить данные. нужно предотратить отсутствие числовых значений в датасете. Для этого использую функции нахождения среднего значения и интерполирования. Но в каждом из случев сталкиваюсь с проблемой.
При data1.mean(axis=1) получаю TypeError: unsupported operand type(s) for +: 'int' and 'str'.
При data1.interpolate(method ='linear', axis = 1) получаю TypeError: Cannot interpolate with all object-dtype columns in the DataFrame. Try setting at least one column to a numeric dtype.

Перепробовал разные варианты исправления ситуации, например использовал функцию to_numeric для перевода str значений в int, но так возникало все больше проблем(волшебным образом NaN значений становилось больше). То же самое с astype(int).

Датасет. Тут NaN значениями являются "-".
введите сюда описание изображения

Как можно решить проблему?


Ответы (1 шт):

Автор решения: Алексей Р

Достаточно правильно прочесть данные.

df = pd.read_excel(r'c:\test\Датасет.xlsx', index_col=0, decimal=',', na_values='-', thousands=' ').interpolate(method='linear', limit_direction='both', axis=1)
→ Ссылка