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

如何通过循环为pandas DataFrame批量应用多条件值替换规则

实现代码

import pandas as pd
import numpy as np

# 构造示例DataFrame
dict1 = {'x_math_lp': {'John':'0',
                  'Lisa': 1,
                  'Karyn': '2'},
         'o_math_lp': {'John': 0.005,
                       'Lisa': 0.001,
                       'Karyn':0.9}}
df = pd.DataFrame(dict1)

# 1. 预处理:将所有x_开头的列转为数值类型,避免字符串比较出错
x_cols = [col for col in df.columns if col.startswith('x_')]
df[x_cols] = df[x_cols].apply(pd.to_numeric)

# 2. 循环遍历所有列对执行替换规则
for x_col in x_cols:
    # 匹配对应的o_列名
    o_col = f"o_{x_col.removeprefix('x_')}"
    if o_col not in df.columns:
        continue
    # 应用规则:x列值<1 且 o列值≥0.05时,x列对应值替换为NaN
    df.loc[(df[x_col] < 1) & (df[o_col] >= 0.05), x_col] = np.nan

print(df)

代码说明

  • 自动识别所有成对的x_前缀、o_前缀列,无需手动列全30列,适配批量处理场景
  • 提前做了数据类型转换,兼容原始x列中数值为字符串的情况
  • 你可以根据实际业务规则,直接修改条件判断中的阈值(<1、>=0.05)即可调整匹配逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 21:48:02