У меня есть таблица, которая показывает каждый клик из писем за прошлый год, импортированных с pandas, который выглядит следующим образом (фиктивные данные):
| User ID | Url Clicked | UTM Keyword |
|:-----------|------------:|:------------:|
| 5c6d252 | http://web..| Banana |
| 5d67h1a | http://web..| orange |
| 6jd79d2 | http://web..| NaN |
| 6i8x678 | http://web..| Apple |
| 5c6d252 | http://web..| Apple |
| 6dd79d2 | http://web..| Banana |
Каждая строка представляет только один клик, поэтому ИД пользователя появится в таблице несколько раз. Из этих данных я хотел бы узнать, сколько раз пользователь нажимал ссылку с определенным ключевым словом.
Например, пользователь '5c6d252' нажимал ссылки с ключевым словом 'Banana' 5 раз, но щелкнул «Orange» 2 раза.
Это фрейм данных с более чем 1,8 млн строк и 150 различными ключевыми словами, поэтому я не уверен, как к этому подойти, особенно если не знаком с использованием Python.
Первоначально я пытался использовать этот запрос в SQL, но с 150 различными ключевыми словами это не показалось эффективным.
WITH fruit_clicks AS (
SELECT UserID,
CASE
WHEN UTMKeyword = 'Banana' THEN 1
ELSE 0
END AS 'banana_click',
CASE
WHEN UTMKeyword = 'Orange' THEN 1
ELSE 0
END AS 'orange_click',
CASE
WHEN UTMKeyword = 'Apple' THEN 1
ELSE 0
END AS 'apple_click',
CASE
WHEN UTMKeyword = 'Mango' THEN 1
ELSE 0
END AS 'mango_click',
CASE
WHEN UTMKeyword IS NULL THEN 1
ELSE 0
END AS 'no_fruit_click'
FROM 2019_table)
SELECT UserID, SUM(banana_click), SUM(orange_click), SUM(apple_click), SUM(mango_click), SUM(no_fruit_click)
FROM fruit_clicks
GROUP BY UserID;