折叠#

简而言之,折叠转换是一种无需任何预处理即可直接将宽格式数据转换为长格式数据的方法(详见 长格式 vs 宽格式数据)。折叠转换与透视转换相反。

因此,例如,如果您的数据包含多列记录不同类别的并行数据,则可以使用折叠转换根据这些类别进行编码。

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

注意,折叠转换本质上是将指定列中的所有值堆叠到一个名为 "value" 的新字段中,并将相关的名称存放在名为 "key" 的字段中。

有关折叠转换实际应用的示例,请参阅平行坐标图

转换选项#

transform_fold() 方法构建在 FoldTransform 类之上,该类具有以下选项:

点击显示表格

属性

类型

描述

as

array(FieldName)

折叠转换生成的键和值属性的输出字段名称。默认值:["key", "value"]

fold

array(FieldName)

指示要折叠的属性的数据字段数组。