Rapid miner: CSV с вещественными числами с запятыми вместо точек
-
28-10-2019 - |
Вопрос
У меня проблема с импортом файла CSV с помощью RapidMiner. Значения с плавающей запятой записываются с запятыми вместо разделяющей точки между целыми и десятичными значениями.
Кто-нибудь знает, как правильно импортировать значения, отформатированные таким образом?
образец данных:
BMI;1;0;1;1;1;blue;-0,138812155;0,520378909;5;0;50;107;0;9;0;other;good;2011
BMI;1;0;1;1;1;pink;-0,624654696;;8;0;73;120;1;3;0,882638889;other;good;2011
Rapid miner фактически интерпретирует это как «полиномиальное».Принуждение к «реальному» приводит только к правильной интерпретации значения «0».
спасибо
Решение
Используйте точку с запятой в качестве разделителя.Вы можете использовать java.util.Scanner
для чтения каждой строки.String.split()
для разделения на точку с запятой.Когда вы получаете токен с запятой, вы можете использовать String.replace()
, чтобы изменить запятую на десятичную.Затем вы можете использовать Float.parseFloat()
Надеюсь, это ответит на ваш вопрос.
Другие советы
Похоже, это очень старый запрос.Не уверен, что это поможет вам, но это может помочь другим в подобной ситуации.
Шаг 1: в операторе «Прочитать CSV» в разделе «Мастер настройки импорта» убедитесь, что вы выбрали «Точка с запятой» в качестве разделителя.
Шаг 2. Используйте оператор «Типы предположений».Тип фильтра атрибутов -> Подмножество, Выбрать атрибуты -> выберите атрибуты 8, 9 и 16 (на основе приведенного выше примера), измените «десятичный знак» на «», и все будет готово.
Надеюсь, это поможет (кому-то!)