У меня есть модель данных с тремя столбцами (CUST_ID, TOPIC, VALUE)
data = pd.DataFrame({"CUST_ID":["C1", "C1", "C2", "C3", "C3"],
"TOPIC":["TOPIC1", "TOPIC2", "TOPIC2", "TOPIC1", "TOPIC2"],
"VALUE":[10, 15, 8, 5, 20]})
Я хочу сгруппировать по CUST_ID, преобразовать столбец "TOPIC" в два столбца "TOPIC_a_VALUE" и "TOPIC_b_VALUE"
Я знаю, как сделать это с помощью SQL, но как это сделать с помощью панд?
SELECT CUST_ID,
MAX(CASE WHEN TOPIC = "TOPIC1" THEN VALUE ELSE 0 END) AS TOPIC_a_VALUE
MAX(CASE WHEN TOPIC = "TOPIC2" THEN VALUE ELSE 0 END) AS TOPIC_b_VALUE
FROM TABLE
GROUP BY CUST_ID
Результат, который я хочу получить ниже,
result = pd.DataFrame({"CUST_ID":["C1", "C2", "C3"],
"TOPIC_a_VALUE":[10, np.nan, 5],
"TOPIC_b_VALUE":[15, 8, 20]})