Код: Выделить всё
df = pl.from_repr("""
┌───────┬───────┬───────┐
│ Col_1 ┆ Col_2 ┆ Col_3 │
│ --- ┆ --- ┆ --- │
│ str ┆ str ┆ i64 │
╞═══════╪═══════╪═══════╡
│ A ┆ a ┆ 1 │
│ B ┆ b ┆ 2 │
│ C ┆ c ┆ 3 │
│ D ┆ d ┆ 4 │
└───────┴───────┴───────┘
""")
Код: Выделить всё
display_list = ['A','B','B','B','C','D','D','A']
Код: Выделить всё
shape: (8, 4)
┌───────┬───────┬───────┬───────────────┐
│ Col_1 ┆ Col_2 ┆ Col_3 ┆ Occurrence_No │
│ --- ┆ --- ┆ --- ┆ --- │
│ str ┆ str ┆ i64 ┆ i64 │
╞═══════╪═══════╪═══════╪═══════════════╡
│ A ┆ a ┆ 1 ┆ 1 │
│ B ┆ b ┆ 2 ┆ 1 │
│ B ┆ b ┆ 2 ┆ 2 │
│ B ┆ b ┆ 2 ┆ 3 │
│ C ┆ c ┆ 3 ┆ 1 │
│ D ┆ d ┆ 4 ┆ 1 │
│ D ┆ d ┆ 4 ┆ 2 │
│ A ┆ a ┆ 1 ┆ 1 │
└───────┴───────┴───────┴───────────────┘
Я могу получить результат, кроме Occurrence_No, используя этот код:
Код: Выделить всё
df = df.with_columns(pl.col('Col_1').map_elements(lambda x: display_list.count(x)).alias('occur'))
df = df.select(pl.exclude('occur').repeat_by('occur').explode())
Как добавить столбец Occurrence_No?
Подробнее здесь: https://stackoverflow.com/questions/772 ... n-a-column