У меня есть кадр данных, который выглядит следующим образом
ID ..... config_name config_version ...
aa A 0
ab A 7
ad A 7
ad A 27
bb B 0
cc C 0
cd C 8
Я хочу сгруппировать имя_конфигурации и применить cumcount к каждому уникальному config_version, чтобы я получил дополнительный столбец, например
ID ..... config_name config_version config_version_count
aa A 0 0
ab A 7 1
ad A 7 1
ad A 27 2
bb B 0 0
cc C 0 0
cd C 8 1
Кажется, я не понимаю, как это сделать.
Я пытался использовать
unique_count = df.groupby('config_name')['config_version'].cumcount()
unique_count = pd.DataFrame({'config_name': [unique_count.index], 'config_version_count: [unique.count.values]})
df = pd.merge(df,unique_count, on = 'config_name' , how = 'left')
, что дает следующий вывод
ID ..... config_name config_version config_version_count
aa A 0 0
ab A 7 1
ad A 7 2
ad A 27 3
bb B 0 0
cc C 0 0
cd C 8 1
Я также пытался
unique_count = df.drop_duplicates().groupby('config_name')['config_version'].cumcount()
unique_count.reindex(df.index).ffill()
df['config_version_count'] = unique_count
Но это дает тот же результат, что и с первой попытки.
Есть идеи, как мне это сделать?