You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在pandas DataFrame的groupby分组上应用softmax函数

实现方案

直接使用pandas的groupby + transform组合即可完成分组内的softmax计算,transform会返回和原数据集行数完全匹配的计算结果,可直接赋值为新列。

完整代码示例

import pandas as pd
from scipy.special import softmax

# 构造示例DataFrame
d = { 
     'EventNo': ['10','10','12','12','12'],
    'Name': ['Joe','Jack','John','James','Jim'],
    'Rating':[30,32,2.5,3,4],
}
df = pd.DataFrame(data=d)

# 分组计算softmax,新增Probabilities列,保留4位小数
df['Probabilities'] = df.groupby('EventNo')['Rating'].transform(softmax).round(4)

print(df)

输出结果

EventNo   Name  Rating  Probabilities
0      10    Joe    30.0         0.1192
1      10   Jack    32.0         0.8808
2      12   John     2.5         0.1402
3      12  James     3.0         0.2312
4      12    Jim     4.0         0.6285

和你期望的结果完全匹配,微小的尾数差异为浮点数计算正常精度误差。

内容的提问来源于stack exchange,提问作者SOK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 11:39:03