У меня есть фрейм данных с данными ранжирования по ключевым словам для нескольких городов, как в примере ниже:
| Location | Keyword | Position | Domain |
|----------|-----------------------|----------|--------------|
| London | Python developer jobs | 1 | Domain-A.com |
| London | Python developer jobs | 2 | Domain-A.com |
| London | Python developer jobs | 3 | Domain-B.com |
| London | Python developer jobs | 4 | Domain-A.com |
| London | Python developer jobs | 5 | Domain-B.com |
| London | Python developer jobs | 6 | Domain-C.com |
| London | Python developer jobs | 7 | Domain-C.com |
| London | Data scientist jobs | 1 | Domain-A.com |
| London | Data scientist jobs | 2 | Domain-B.com |
| London | Data scientist jobs | 3 | Domain-C.com |
| New York | Python developer jobs | 1 | Domain-B.com |
| New York | Python developer jobs | 2 | Domain-A.com |
| New York | Python developer jobs | 3 | Domain-B.com |
| New York | Python developer jobs | 4 | Domain-A.com |
| New York | Data scientist jobs | 1 | Domain-A.com |
| New York | Data scientist jobs | 2 | Domain-A.com |
| New York | Data scientist jobs | 3 | Domain-A.com |
| New York | Data scientist jobs | 4 | Domain-A.com |
| … | … | … | … |
Мне трудно придумать функцию, которая создает новый столбец и присваивает уменьшающееся значениена основе количества вхождений домена в зависимости от местоположения и ключевого слова.
Таким образом, первое вхождение любого домена с ключевым словом X в местоположение Y получает значение 10, второе вхождение домена в том же ключевом слове и группе местоположений получает значение 5, и все последующие вхождения в этой группе получаютзначение 1.
Конечный результат должен выглядеть следующим образом:
| Location | Keyword | Position | Domain | Value |
|----------|-----------------------|----------|--------------|-------|
| London | Python developer jobs | 1 | Domain-A.com | 10 |
| London | Python developer jobs | 2 | Domain-A.com | 5 |
| London | Python developer jobs | 3 | Domain-B.com | 10 |
| London | Python developer jobs | 4 | Domain-A.com | 1 |
| London | Python developer jobs | 5 | Domain-B.com | 5 |
| London | Python developer jobs | 6 | Domain-C.com | 10 |
| London | Python developer jobs | 7 | Domain-C.com | 5 |
| London | Data scientist jobs | 1 | Domain-A.com | 10 |
| London | Data scientist jobs | 2 | Domain-B.com | 10 |
| London | Data scientist jobs | 3 | Domain-C.com | 10 |
| New York | Python developer jobs | 1 | Domain-B.com | 10 |
| New York | Python developer jobs | 2 | Domain-A.com | 10 |
| New York | Python developer jobs | 3 | Domain-B.com | 5 |
| New York | Python developer jobs | 4 | Domain-A.com | 5 |
| New York | Data scientist jobs | 1 | Domain-A.com | 10 |
| New York | Data scientist jobs | 2 | Domain-A.com | 5 |
| New York | Data scientist jobs | 3 | Domain-A.com | 1 |
| New York | Data scientist jobs | 4 | Domain-A.com | 1 |
| … | … | … | … | … |
````
Thanks for you support!