SQL风格在Dask Series或DataFrame列上爆炸

时间:2018-10-29 19:41:15

标签: python dataframe explode series dask

我有一个Dask系列,其中包含一列带有值列表的列。我想执行一个SQL风格的爆炸,为每个索引值和对应的列表元素创建一个新行。对于此特定问题,列表的长度都相同。

单行示例:

索引

123 [value1,value2,value3]

所需的转换:

索引

123 value1
123 value2
123 value3

任何有关如何实现这一目标的建议将不胜感激。

1 个答案:

答案 0 :(得分:2)

在熊猫数据框中,看起来像

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)