集合类型相关操作
PyODPS支持的集合类型有List和Dict。这两个类型都可以使用下标获取集合中的某个项目。len方法用于获得集合的大小。
同时,两种集合均有explode方法,用于展开集合中的内容。对于List,explode默认返回一列,当传入参数pos时, 将返回两列,其中一列为值在数组中的编号(类似Python的enumerate函数)。对于Dict,explode会返回两列, 分别表示keys及values。explode中也可以传入列名,作为最后生成的列。
示例如下。
>>> df
id a b
0 1 [a1, b1] {'a2': 0, 'b2': 1, 'c2': 2}
1 2 [c1] {'d2': 3, 'e2': 4}
>>> df[df.id, df.a[0], df.b['b2']]
id a b
0 1 a1 1
1 2 c1 NaN
>>> df[df.id, df.a.len(), df.b.len()]
id a b
0 1 2 3
1 2 1 2
>>> df.a.explode()
a
0 a1
1 b1
2 c1
>>> df.a.explode(pos=True)
a_pos a
0 0 a1
1 1 b1
2 0 c1
>>> # 指定列名。
<