考虑以下数据框。
df = pl.DataFrame(data={"col1": range(10)})
┌──────┐
│ col1 │
│ --- │
│ i64 │
╞══════╡
│ 0 │
│ 1 │
│ 2 │
│ 3 │
│ 4 │
│ 5 │
│ 6 │
│ 7 │
│ 8 │
│ 9 │
└──────┘
假设我有一个元组列表,其中第一个值表示起始索引,第二个值表示长度值(如 中使用pl.DataFrame.slice
)。这可能看起来像这样:
slices = [(1,2), (5,3)]
现在,从中切出/提取两个块的好方法是什么df
,即第一个切片从第 1 行开始,长度为 2,而第二个块从第 5 行开始,长度为 3。
以下是我所寻找的内容:
┌──────┐
│ col1 │
│ --- │
│ i64 │
╞══════╡
│ 1 │
│ 2 │
│ 5 │
│ 6 │
│ 7 │
└──────┘
您可以使用它
pl.DataFrame.slice
来分别获取每个切片,然后使用它pl.concat
来连接所有切片。编辑。作为矢量化方法的尝试,您可以首先使用切片参数列表来创建索引数据框(使用
pl.int_ranges
和pl.DataFrame.explode
)。之后,可以使用此索引数据框对df
连接进行切片。