Поворот таблицы

Преобразование pivot превращает уникальные значения одного поля в новые столбцы выходного потока. Для заполнения ячеек оно агрегирует значения другого поля. Поля groupby определяют, какие записи объединить в одну выходную строку. Это удобно для матриц и перекрёстных таблиц; операция обратна сворачиванию fold.

Свойства преобразования

Свойство Тип Описание
pivot FieldName Обязательное имя поля, уникальные значения которого станут именами новых столбцов.
value FieldName Обязательное имя поля, значения которого агрегируются в новых столбцах.
groupby FieldName[] Поля группировки, определяющие выходные строки. Без них все записи образуют одну группу.
limit number Максимальное число создаваемых столбцов. Перед применением ограничения значения pivot сортируются по возрастанию. 0 по умолчанию означает отсутствие ограничения.
op AggregateOp Операция агрегирования сгруппированных значений поля value; по умолчанию sum.

Использование

Исходные данные:

[
  {"country": "Norway", "type": "gold", "count": 14},
  {"country": "Norway", "type": "silver", "count": 14},
  {"country": "Norway", "type": "bronze", "count": 11},
  {"country": "Germany", "type": "gold", "count": 14},
  {"country": "Germany", "type": "silver", "count": 10},
  {"country": "Germany", "type": "bronze", "count": 7},
  {"country": "Canada", "type": "gold", "count": 11},
  {"country": "Canada", "type": "silver", "count": 8},
  {"country": "Canada", "type": "bronze", "count": 10}
]

Преобразование:

{
  "pivot": "type",
  "groupby": ["country"],
  "value": "count"
}

создаёт следующие записи:

[
  {"country": "Norway", "gold": 14, "silver": 14, "bronze": 11},
  {"country": "Germany", "gold": 14, "silver": 10, "bronze": 7},
  {"country": "Canada", "gold": 11, "silver": 8, "bronze": 10}
]

Примеры