我正在使用具有以下结构的 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 进行分组,然后对每个组应用一些功能(因为我想在最终结果中保留所有行,所以我认为我应该在这里使用 transform)。我测试了几件事,但没有任何成功。任何帮助表示赞赏。