Несоответствующие числовые значения из CSV-файла в Dataprep - PullRequest
0 голосов
/ 04 апреля 2019

Мне трудно понять, почему Dataprep назначает несовпадающие значения числовым значениям, которые я пытаюсь импортировать из файла .csv.

В моем Excel все выглядит нормально:

enter image description here

но в dataprep это значение, которое я получаю:

enter image description here

Кажется, для большинства чисел выше 1000.

Как я могу предотвратить это? Я сохранил файл как .csv

1 Ответ

1 голос
/ 05 апреля 2019

Скорее всего, это связано с исходным форматированием в Excel (в частности, это делают числовые форматы учета и стиля "запятая", потому что это оправдывает символ валюты или знак как часть форматирования).В этих случаях вы также заметите, что вставка из Excel включает начальные и конечные пробельные символы.

Dataprep не тратит слишком много времени на то, чтобы думать за вас - в этом случае они придерживаются консервативного подходаВы получаете необработанные данные и позволяете вам решить, нужно ли их переформатировать.

Чтобы убедиться, что Dataprep не работает неправильно, вам нужно всего лишь открыть CSV в текстовом редакторе - вы, скорее всего, увидите те же самыестроки в кавычках.Это также распространено, когда другие системы генерируют CSV с примененным форматированием чисел (принуждая значения кавычек в CSV).Точно так же любые текстовые столбцы, содержащие запятые, как правило, заключаются в кавычки (при необходимости, поскольку это, как правило, разделитель и имеет особое значение).

К счастью, это легко исправить.Вам также придется заменить запятые, если вы хотите использовать десятичный тип.


Простые замены:

Интерфейс:

  1. Формат> Обрезать начальные и конечные кавычки
  2. Формат> Обрезать начальные и конечные пробелы
  3. Заменить> Текст или шаблон (заменить ","; убедитесь, что вы отметили "Соответствовать всем вхождениям"

Результирующий скрипт Wrangle:

textformat col: col1 type: trimquotes
textformat col: col1 type: trimwhitespace
replacepatterns col: col1 with: '' on: ',' global: true

Регулярное выражение (1 шаг замены):

replacepatterns col: col1 with: '' on: /[^0-9.]/ global: true

В смешанной команде с людьми, которые не знают регулярных выражений, первое иногда немного яснее и менее пугающе, но в остальном сделать это намного проще за один шаг.

...