Я работаю с Pandas DataFrame, имеющим следующую структуру:
import pandas as pd
df = pd.DataFrame({'brand' : ['A', 'A', 'B', 'B', 'C', 'C'],
'target' : [0, 1, 0, 1, 0, 1],
'freq' : [5600, 220, 5700, 90, 5000, 100]})
print(df)
brand target freq
0 A 0 5600
1 A 1 220
2 B 0 5700
3 B 1 90
4 C 0 5000
5 C 1 100
Для каждого бренда я хотел бы рассчитать соотношение положительных целей, например, для бренда A, процентное соотношение положительная цель - 220 / (220 + 5600) = 0,0378.
Мой итоговый DataFrame должен выглядеть следующим образом:
brand target freq ratio
0 A 0 5600 0.0378
1 A 1 220 0.0378
2 B 0 5700 0.0156
3 B 1 90 0.0156
4 C 0 5000 0.0196
5 C 1 100 0.0196
Я знаю, что должен сгруппировать свой DataFrame по марке, а затем применить некоторую функцию к каждой группе (так как я хочу сохранить все строки в моем конечном результате я думаю, что я должен использовать преобразование здесь). Я проверил несколько вещей, но безуспешно. Любая помощь приветствуется.