Я пытаюсь создать pl.Series, где каждый элемент строки n представляет собой список элементов 1...n. Использование pl.int_range дает мне ошибку: [code]import polars as pl
df = pl.DataFrame({ 'a': [1, 2, 3, 4, 5] }).select( pl.int_range(1, pl.col('a')+1) ) [/code] [code]ComputeError: `end` must contain exactly one value, got 5 values [/code] Я могу обойти это, используя диапазон Python: [code]df = pl.DataFrame({ 'a': [1, 2, 3, 4, 5] })
print(df.with_columns( pl.col('a').map_elements(lambda x: list(range(1, x+1))).alias('c') )) [/code] [code]shape: (5, 2) ┌─────┬───────────────┐ │ a ┆ c │ │ --- ┆ --- │ │ i64 ┆ list[i64] │ ╞═════╪═══════════════╡ │ 1 ┆ [1] │ │ 2 ┆ [1, 2] │ │ 3 ┆ [1, 2, 3] │ │ 4 ┆ [1, 2, ... 4] │ │ 5 ┆ [1, 2, ... 5] │ └─────┴───────────────┘ [/code] Но это, вероятно, не так эффективно.