#python #парсер #pandas #csv #dataframe
Файл csv сохранен в LibreOffice из excel файла. При стандартной загрузке: map_data = pd.read_csv('map.csv', sep=';') в нужном столбце получаются данные типа - dtype: object Если попытаться их перевести в числовые: pd.to_numeric(map_data['Dist_Loc']) выдается следующая ошибка: ValueError: Unable to parse string "3,095" at position 0 Если попытаться перевести в числовые другим способом: map_data['Dist_Loc'].astype(np.float) Тоже возникает ошибка: ValueError: could not convert string to float: '6,157'
Ответы
Ответ 1
Если 6,157 - это 6.157, т.е. , - десятичный разделитель, то можно воспользоваться параметром decimal df = pd.read_csv('map.csv', sep=';', decimal=',') если , это разделитель разрядов и 6,157 - это 6157, то можно воспользоваться параметром thousands: df = pd.read_csv('map.csv', sep=';', thousands=',') Ссылка на документацию... Pandas также замечательно читает напрямую из Excel: df = pd.read_excel(filename)
Комментариев нет:
Отправить комментарий