SQL 式在 Dask 系列或 DataFrame 列上展开

SQL-style explode on Dask Series or DataFrame column

我有一个 Dask 系列,其中包含一个带有值列表的列。我想执行 SQL 式的分解来为每个索引值和对应的列表元素创建一个新行。对于这个特定问题,所有列表的长度都相同。

单行示例:

索引
123 [值 1、值 2、值 3]

所需的转换:

索引
123 值 1
123 值 2
123 值 3

任何关于如何实现这一点的建议都将不胜感激。

在 pandas 数据框上,这看起来像

df.column.apply(pd.Series, 1).stack().reset_index(level=1, drop=True)

要对 Dask 数据帧执行此操作,您需要使用 map_partitions,对数据的每个分区执行完全相同的操作:

def func(df):
    return df.column.apply(pd.Series, 1).stack().reset_index(level=1, drop=True)
df.map_partitions(func)