如何在Polars DataFrame中将内部列表展开为新行(反向聚合)
如何在Polars DataFrame中将内部列表展开为新行(反向聚合)
嘿,这个需求Polars其实早就给你准备好了现成的方法,完全不用自己折腾复杂逻辑!你要做的就是把嵌套列表所在的列拆成单独的行,其他列的值会自动重复对应,Polars的explode()方法正好干这个事儿。
针对你给出的示例代码,我们只需要在expand函数里调用explode()方法指定要展开的列就行:
import polars as pl def expand(df): # 调用explode方法展开y列的嵌套列表 return df.explode("y") df = pl.DataFrame( { "x": ["A", "B"], "y": [[1, 2], [3, 4]], } ) expected_df = pl.DataFrame({"x": ["A", "A", "B", "B"], "y": [1, 2, 3, 4]}) assert expand(df).equals(expected_df)
运行这段代码,断言会顺利通过,完全符合你的预期结果。
另外补充个小知识点:如果你的DataFrame里有多列都是嵌套列表,只要这些列的列表长度对应,还可以一次性展开多个列,比如:
df.explode(["y", "z"])
备注:内容来源于stack exchange,提问作者Jakub Kuszneruk
相关产品推荐
相关产品推荐

