Из широкого формата в длинный — Fold
Преобразование fold позволяет напрямую преобразовать данные из широкого формата в длинный без предварительной обработки. Подробнее об этих форматах см. «Длинный и широкий форматы». Это преобразование противоположно преобразованию pivot.
Если несколько столбцов содержат параллельные данные для разных категорий, с помощью fold можно кодировать данные по этим категориям:
import numpy as np
import pandas as pd
import altair as alt
rand = np.random.RandomState(0)
data = pd.DataFrame({
'date': pd.date_range('2019-01-01', freq='D', periods=30),
'A': rand.randn(30).cumsum(),
'B': rand.randn(30).cumsum(),
'C': rand.randn(30).cumsum(),
})
alt.Chart(data).transform_fold(
['A', 'B', 'C'],
).mark_line().encode(
x='date:T',
y='value:Q',
color='key:N'
)
Здесь fold объединяет все значения указанных столбцов в одно новое поле "value", а соответствующие имена столбцов помещает в поле "key".
Ещё один пример применения fold — диаграмма параллельных координат в галерее.
Параметры преобразования
Метод Chart.transform_fold основан на классе FoldTransform, который поддерживает следующие параметры:
Нажмите, чтобы показать таблицу
| Свойство | Тип | Описание |
|---|---|---|
as | array(FieldName) | Имена выходных полей для ключа и значения, создаваемых преобразованием |
fold | array(FieldName) | Массив полей данных, которые нужно преобразовать из широкого формата в длинный. |