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

Python中基于p值为pandas回归输出表对应系数列设置加粗格式的方法

实现方法

核心逻辑是通过Styler.apply()按行遍历数据,为每个回归系数匹配对应的p值列做阈值判断,满足条件就设置加粗样式。

完整代码示例

import pandas as pd

# 构造示例DataFrame,和你的数据结构一致
data = {
    'Model_run': [1,2,3,4,5],
    'Param_1': [.453, .452, .264, .356, .234],
    'Param_2': [.756, .336, .443, .543, .435],
    'Param_3': [.945, .342, .044, .033, .032],
    'Param_1_pv': [.06, .04, .33, .01, .04],
    'Param_2_pv': [.04, .03, .05, .05, .03],
    'Param_3_pv': [.03, .22, .32, .14, .09]
}
df = pd.DataFrame(data)

# 自动提取所有回归系数列(排除_pv结尾的p值列)
param_cols = [col for col in df.columns if col.startswith('Param_') and not col.endswith('_pv')]

# 自定义样式函数:按行判断是否需要加粗
def bold_significant(row):
    # 初始化所有单元格的样式为无
    style_list = [''] * len(row)
    for param in param_cols:
        # 匹配对应p值列
        pv_col = f"{param}_pv"
        if row[pv_col] <= 0.05:
            # 获取系数列的位置,设置加粗样式
            col_pos = row.index.get_loc(param)
            style_list[col_pos] = 'font-weight: bold'
    return style_list

# 应用样式,axis=1表示按行处理
styled_df = df.style.apply(bold_significant, axis=1)

# 直接在jupyter等环境显示styled_df即可看到效果,也可以导出到Excel保留格式
# styled_df.to_excel('回归结果_加粗显著项.xlsx', engine='openpyxl', index=False)

说明

  • 不使用applymap的原因是该方法仅能访问单个单元格的数值,无法获取同一行其他列的p值做判断,按行处理的apply更适配这个场景
  • 如果后续新增参数列,不需要修改代码,param_cols会自动识别所有符合规则的系数列
  • 导出到Excel时需要提前安装openpyxl依赖,格式会完整保留

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 04:06:03