This website is for version 5. You can find the documentation for version 4 here.

Fold#

The fold transform is, in short, a way to convert wide-form data to long-form data directly without any preprocessing (see Long-form vs. Wide-form Data for more information). Fold transforms are the opposite of the Pivot.

So, for example, if your data consist of multiple columns that record parallel data for different categories, you can use the fold transform to encode based on those categories:

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'
)

Notice here that the fold transform essentially stacks all the values from the specified columns into a single new field named "value", with the associated names in a field named "key".

For an example of the fold transform in action, see Parallel Coordinates.

Transform Options#

The transform_fold() method is built on the FoldTransform class, which has the following options:

Click to show table

Property

Type

Description

as

array(FieldName)

The output field names for the key and value properties produced by the fold transform. Default value: ["key", "value"]

fold

array(FieldName)

An array of data fields indicating the properties to fold.