Pandas如何逐行计算所有sim-*列的平均值(排除Date列)
pandas实现匹配sim-*列逐行计算均值新增列
直接用pandas内置的列筛选+行均值计算逻辑就能实现,不需要写循环遍历每一行,运行效率更高:
- 核心实现代码
# 假设你的DataFrame变量名为df,新增列命名为sim_mean df['sim_mean'] = df.filter(regex=r'^sim-', axis=1).mean(axis=1)
- 逻辑说明
df.filter(regex=r'^sim-', axis=1)会自动筛选所有列名以sim-开头的列,完全匹配你要的sim-*规则,筛选过程天然不会选中Date列,不需要额外写排除逻辑- 末尾的
.mean(axis=1)是针对筛选出的sim类列,按行方向计算平均值,默认会自动跳过列中的空值参与计算
如果需要所有匹配到的sim列均为非空值才返回均值结果,只要给mean方法加参数即可:
.mean(axis=1, skipna=False),存在空值的行计算结果会返回NaN。
内容的提问来源于stack exchange,提问作者RSW
相关产品推荐
相关产品推荐

