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

如何通过索引变量访问Pandas DataFrame列?批量绘制直方图优化方案

优化Pandas批量绘制特征直方图的方法

嘿,这个场景太常见了!硬写循环里的字符串拼接不仅麻烦,要是后续列数变了还得改代码,给你分享几个更优雅的实现方式:

方法1:动态筛选目标列(灵活适配列数变化)

先把所有带num.feature前缀的列筛选出来,再循环处理——不管是30列还是以后加更多列,都不用改循环的范围:

# 筛选所有以"num.feature"开头的列
feature_columns = [col for col in df.columns if col.startswith("num.feature")]

# 批量绘制直方图
for col in feature_columns:
    df[col].hist(bins=90, range=(0, 0.4))

方法2:用df.filter()一键搞定(最简洁)

Pandas的filter方法支持通配符匹配列名,直接提取目标列组成新的DataFrame,甚至不用手动写循环——hist()方法会自动给每一列生成直方图:

# 提取所有包含"num.feature"的列
feature_subset = df.filter(like="num.feature")

# 一键批量绘制,还能通过figsize调整整体布局
feature_subset.hist(bins=90, range=(0, 0.4), figsize=(16, 12))

进阶:个性化定制每个直方图

如果需要给每个图加标题、坐标轴标签这类个性化设置,还是可以结合循环,配合筛选后的列名来做:

for col in feature_subset.columns:
    ax = df[col].hist(bins=90, range=(0, 0.4))
    ax.set_title(f"直方图:{col}")
    ax.set_xlabel("特征值")
    ax.set_ylabel("频次")

对比你原来的写法,这些方法的优势在于动态适配列名变化,不用硬编码列数,代码可读性和维护性都更高~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:56:17