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

如何使用if elif else条件向已有数据列插入数据?

用if-elif-else条件向数据列插入数据的实现方法

针对你提出的根据已有列的值生成新列的需求,这里以Python的Pandas库(处理表格数据的常用工具)为例,给出两种高效实现方式:

一、针对你的实际需求(Sale id → Sale no)

方法1:使用apply结合自定义函数

适合逻辑复杂、需要灵活判断的场景:

import pandas as pd

# 假设你的原始数据是这样的DataFrame
df = pd.DataFrame({
    'Sale id': ['sale001', 'sale002', 'sale003', 'sale001', 'sale004']
})

# 定义条件判断函数
def generate_sale_no(sale_id):
    if sale_id == 'sale001':
        return 'clo sale'
    elif sale_id == 'sale002':
        return 'blo sale'
    else:
        return ''

# 生成新的Sale no列
df['Sale no'] = df['Sale id'].apply(generate_sale_no)

方法2:使用np.select(向量化操作,大数据量更高效)

适合多条件分支的场景,执行速度比apply更快:

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'Sale id': ['sale001', 'sale002', 'sale003', 'sale001', 'sale004']
})

# 定义条件列表和对应结果列表
conditions = [
    df['Sale id'] == 'sale001',
    df['Sale id'] == 'sale002'
]
results = [
    'clo sale',
    'blo sale'
]

# 生成Sale no列,default参数指定else的返回值
df['Sale no'] = np.select(conditions, results, default='')

二、对应你给出的通用示例(columnA → columnB)

同样可以用上述两种方法实现:

用lambda简化版(apply)

df['columnB'] = df['columnA'].apply(lambda x: '123' if x == 'abc' else ('345' if x == 'efg' else '0'))

用np.select实现

conditions = [df['columnA'] == 'abc', df['columnA'] == 'efg']
values = ['123', '345']
df['columnB'] = np.select(conditions, values, default='0')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 15:15:37