Я создаю столбец счетчика, который увеличивается только тогда, когда значения в (i-1) отличаются от значений в i.
Ниже приведены примеры данных:
user_id sc_id
1 100
1 100
1 101
1 100
2 100
2 105
3 105
3 105
Нижемой код:
df['subcat_counter'] = 1
for i in range(1,len(df)):
if df.sc_id[i-1]==df.sc_id[i] and df['user_id'][i-1]==df['user_id'][i]:
df.at[i,'subcat_counter']=df.subcat_counter[i-1]
else:
df.at[i,'subcat_counter']=df.subcat_counter[i-1]+1
Ниже приведен обязательный вывод:
user_id sc_id subcat_counter
1 100 1
1 100 1
1 101 2
1 . 100 3
2 100 4
2 105 5
3 105 6
3 105 6
Ошибка:
KeyError: 0