OpenRefine разделяет один столбец с повторяющимися значениями на хорошо отформатированные столбцы с заголовками - PullRequest
1 голос
/ 13 февраля 2020

У меня есть один столбец в OpenRefine, например:

 .TI
Localisation et dénomination :
Provenance des matériaux de monuments de Senlis

.DA
Date du cliché :
Janvier 1970

.R16N
Commune :
Senlis

.R17N
Département-Région-Pays :
Oise
Picardie
France

.R62N
Localisation plus précise dans l'édifice :
Cave


.R13
Datation de l'édifice :
Lutétien
Éocène
Paléogène

.MC
Mots-clés :
Pierre
Roche
Géologie
Caractérisation
Calcaire
Carrière
Liais
Liais de Senlis
Carrière souterraine

Данные для каждого элемента начинаются с имени тега, «Локализация ...», «Дата ...», «Коммуна» et c. (коды, такие как .TI, .DA et c. не важны), за которым следует значение, и каждый тег или значение находятся в последовательных строках, около десяти тысяч. Я хотел бы иметь что-то вроде этого с тегами в качестве заголовков столбцов:

Localisation et dénomination | Date du cliché | Commune | Département-Région-Pays | etc.
Provenance des matériaux de monuments de Senlis | Janvier 1970 | Senlis | Oise, Picardie, France | etc.

Есть идеи? Спасибо

1 Ответ

0 голосов
/ 13 февраля 2020

Я бы посоветовал сделать следующее:

  • Импортировать имеющиеся у вас данные в OpenRefine в виде одного столбца (назовем его «Данные»)
    • Удалить все «коды» "из ваших данных:
    • Создание пользовательского текстового фасета с использованием GREL value.startsWith(".").toString()
    • Выберите" true "в этом фасете
    • Удалить все выбранные строки
    • Удалить фасет

  • Удалить все пустые строки из ваших данных
    • Фасет пустым (нулевым или пустым)
    • Выберите «true» в этом фасете
    • Удалить все выбранные строки
    • Удалить фасет

  • Добавьте новый столбец в ваш проект OpenRefine, используя «Добавить столбец на основе существующего столбца» из столбца «Данные»
    • Используйте GREL if(value.endsWith(":"),value,"")
    • Вызовите новый столбец (например, ) «Ключ»
    • Переместите новый столбец «Ключ», чтобы стать первым в проекте
    • В столбце «Ключ» используйте «Заполнить»

  • Удалите строки с «Ключом» в столбцах «Ключ» и «Данные»
    • В столбце «Данные» создайте пользовательский фасет текста с помощью GREL value.endsWith(":").toString()
    • Выбрать » true "в этом фасете
    • Удалить все выбранные строки
    • Удалить фасет

  • Транспонировать данные на основе :
    • В столбце «Ключ» выберите «Транспонировать -> Столбить по столбцам ключ / значение»
    • Выберите «Ключ» в качестве столбца «Ключ» и «Данные» в качестве столбца «Значение»
    • Нажмите ОК

Результатом должна стать таблица с каждым из ваших заголовков в качестве заголовков столбцов и значениями, перечисленными ниже. Поскольку некоторые из ваших заголовков имеют несколько значений (например, для одного «Локализация и деноминация:» у вас может быть много «Département-Région-Pays:» и т. Д. c. Вам может понадобиться использовать функцию «Запись» в OpenRefine вместе с функция «Объединить многозначные ячейки» для получения значений в одну ячейку с разделителями-запятыми

...