Код: Выделить всё
import pandas as pd
df = pd.DataFrame({'ID':['A','B','A','A','B','B','C','D','D','C']})
df['count'] = df['ID'].ne(df['ID'].shift()).groupby(df['ID']).cumsum()
Код: Выделить всё
ID count
0 A 1
1 B 1
2 A 2
3 A 2
4 B 2
5 B 2
6 C 1
7 D 1
8 D 1
9 C 2
Код: Выделить всё
import polars as pl
df = pl.DataFrame({'ID':['A','B','A','A','B','B','C','D','D','C']})
df.with_columns(
count = (pl.col('ID').ne(pl.col('ID').shift()).fill_null(True).cum_sum()).over('ID')
)
Код: Выделить всё
┌─────┬───────┐
│ ID ┆ count │
│ --- ┆ --- │
│ str ┆ u32 │
╞═════╪═══════╡
│ A ┆ 1 │
│ B ┆ 1 │
│ A ┆ 1 │
│ A ┆ 1 │
│ B ┆ 1 │
│ B ┆ 1 │
│ C ┆ 1 │
│ D ┆ 1 │
│ D ┆ 1 │
│ C ┆ 1 │
└─────┴───────┘
Подробнее здесь: https://stackoverflow.com/questions/798 ... -in-all-1s
Мобильная версия