Проблема с использованием функций 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)