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

如何将多条件if-elif规则转为字典,用map生成pandas新列

解决方案

步骤1:构造多条件匹配规则字典

因为需要同时匹配两列的取值组合,直接用元组作为字典的key存储两个列的匹配值,value存储对应要生成的新列值即可:

rule_dict = {
    ("string1", "string3"): "newstring",
    ("stringX", "stringY"): "newstringZ"
}

步骤2:调用map生成新列

先把col1和col2的每行值打包成元组,再调用map匹配规则字典:

# 先导入依赖库(如果没导入的话)
import pandas as pd
import numpy as np

# 示例DataFrame
df = pd.DataFrame(
{
        'col1': ['string1', 'string1', 'string3', 'stringX', 
                '','stringX'],
        'col2': ["stringY","string3","stringY",np.nan,"stringY","stringY"]
}
)

# 生成新列
df['newcol'] = df[['col1', 'col2']].apply(tuple, axis=1).map(rule_dict)

结果说明

运行后未匹配到规则的行自动返回NaN,最终生成的newcol取值和预期完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 07:09:03