Заполнить по записи в Google Refine

У меня есть следующий CSV-файл с разделителями-запятыми в Google уточнение:

Как заполнить значения из column1, используя Jython или GREL, чтобы стать:

Я пытался:

if value is None:
 return row["record"]["cells"]["column1"]["value"][0]
else:
 return value

Какие-либо предложения? благодарю вас

1 ответ

Сложной частью вашего примера является идентификатор записи 1, поскольку у вас есть два разных значения в column1 в одной записи.

Таким образом, чтобы завершить это, вы должны

  1. Создайте новый индекс, объединив ID а также column1 поле (см. учебник)
  2. Используйте выражение row.record.cells["Column1"].value[0] заполнить вниз (см. учебник)

Я успешно сделал это в 6 шагов, вот код JSON для применения к вашему проекту:

    [
  {
    "op": "core/column-addition",
    "description": "Create column ID2 at index 2 based on column Column1 using expression grel:cells['ID'].value+value",
    "engineConfig": {
      "facets": [],
      "mode": "record-based"
    },
    "newColumnName": "ID2",
    "columnInsertIndex": 2,
    "baseColumnName": "Column1",
    "expression": "grel:cells['ID'].value+value",
    "onError": "set-to-blank"
  },
  {
    "op": "core/text-transform",
    "description": "Text transform on cells in column ID2 using expression grel:cells['ID'].value",
    "engineConfig": {
      "facets": [
        {
          "invert": false,
          "expression": "isBlank(value)",
          "selectError": false,
          "omitError": false,
          "selectBlank": false,
          "name": "ID",
          "omitBlank": false,
          "columnName": "ID",
          "type": "list",
          "selection": [
            {
              "v": {
                "v": false,
                "l": "false"
              }
            }
          ]
        },
        {
          "invert": false,
          "expression": "isBlank(value)",
          "selectError": false,
          "omitError": false,
          "selectBlank": false,
          "name": "Column1",
          "omitBlank": false,
          "columnName": "Column1",
          "type": "list",
          "selection": [
            {
              "v": {
                "v": true,
                "l": "true"
              }
            }
          ]
        }
      ],
      "mode": "row-based"
    },
    "columnName": "ID2",
    "expression": "grel:cells['ID'].value",
    "onError": "keep-original",
    "repeat": false,
    "repeatCount": 10
  },
  {
    "op": "core/text-transform",
    "description": "Text transform on cells in column ID2 using expression grel:cells['Column1'].value",
    "engineConfig": {
      "facets": [
        {
          "invert": true,
          "expression": "value",
          "selectError": false,
          "omitError": false,
          "selectBlank": true,
          "name": "Column1",
          "omitBlank": false,
          "columnName": "Column1",
          "type": "list",
          "selection": [
            {
              "v": {
                "v": " ",
                "l": " "
              }
            }
          ]
        },
        {
          "invert": false,
          "expression": "isBlank(value)",
          "selectError": false,
          "omitError": false,
          "selectBlank": false,
          "name": "ID",
          "omitBlank": false,
          "columnName": "ID",
          "type": "list",
          "selection": [
            {
              "v": {
                "v": true,
                "l": "true"
              }
            }
          ]
        }
      ],
      "mode": "row-based"
    },
    "columnName": "ID2",
    "expression": "grel:cells['Column1'].value",
    "onError": "keep-original",
    "repeat": false,
    "repeatCount": 10
  },
  {
    "op": "core/column-move",
    "description": "Move column ID2 to position 0",
    "columnName": "ID2",
    "index": 0
  },
  {
    "op": "core/text-transform",
    "description": "Text transform on cells in column Column1 using expression grel:row.record.cells[\"Column1\"].value[0]",
    "engineConfig": {
      "facets": [],
      "mode": "record-based"
    },
    "columnName": "Column1",
    "expression": "grel:row.record.cells[\"Column1\"].value[0]",
    "onError": "keep-original",
    "repeat": false,
    "repeatCount": 10
  },
  {
    "op": "core/column-removal",
    "description": "Remove column ID2",
    "columnName": "ID2"
  }
]
Другие вопросы по тегам