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

如何按列名匹配字典键替换DataFrame中所有'<LOD'值?

按列替换'<LOD'为对应检测限的高效实现

最直接的循环实现

针对你的需求,直接遍历replace_vals中的列名,对每一列单独替换<LOD即可,完全不会影响其他列,效率也足够应对28列的规模:

for col_name in replace_vals:
    df[col_name] = df[col_name].replace('<LOD', replace_vals[col_name])

更简洁的apply写法

如果喜欢一行代码的风格,也可以用apply配合lambda实现,逻辑和上面一致:

df = df.apply(
    lambda col: col.replace('<LOD', replace_vals[col.name]) 
    if col.name in replace_vals 
    else col
)

为什么你之前的代码不对?

你之前用np.where加全局df.replace的问题在于:每次循环都会把所有列的<LOD替换成当前列对应的检测限,最后所有列的<LOD都会被替换成最后一个循环列的值,完全不符合需求。上面的两种方法都是针对单列操作,精准替换对应列的目标值。

验证结果

运行代码后,你的示例DataFrame会变成:

Ti Concentration  V Concentration  Cr Concentration
0              2748               25                55
1              3551               25               100
2              1922              345                10

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 20:25:00