Поворот таблицы
Преобразование 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}
]