我有一个Dask系列,其中包含一列带有值列表的列。我想执行一个SQL风格的爆炸,为每个索引值和对应的列表元素创建一个新行。对于此特定问题,列表的长度都相同。
单行示例:
索引
列
123 [value1,value2,value3]
所需的转换:
索引
列
123 value1
123 value2
123 value3
任何有关如何实现这一目标的建议将不胜感激。
答案 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)