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

如何在Pandas iterrows循环中为C3实现类似Where子句的条件判断

解决方案

方法1:使用Python三元表达式(简洁写法)

Python不支持类似SQL的if ... then ... else语法,替代方案是三元条件表达式,语法为真值 if 条件 else 假值,正好匹配你的需求:

df1 = pd.read_excel(path)
result_list = []  # 避免使用内置名称"List"作为变量名
for index, row in df1.iterrows():
    C1 = row[2]
    C2 = row[7]
    # 正确的条件判断写法
    C3 = 'blue' if row[12] == 0 else 'green'
    result_list.append([C1, C2, C3])  # 修正原代码中C_3的笔误,应为C3

方法2:使用常规if-else语句

如果后续需要扩展更复杂的判断逻辑,常规if-else结构可读性更强:

df1 = pd.read_excel(path)
result_list = []
for index, row in df1.iterrows():
    C1 = row[2]
    C2 = row[7]
    if row[12] == 0:
        C3 = 'blue'
    else:
        C3 = 'green'
    result_list.append([C1, C2, C3])

性能优化建议

iterrows()遍历DataFrame的效率较低,若处理大数据量,推荐使用向量化操作或apply()提升性能:

df1 = pd.read_excel(path)
# 批量生成C3列
df1['C3'] = df1.iloc[:, 12].apply(lambda x: 'blue' if x == 0 else 'green')
# 提取目标列并转为列表
result_list = df1.iloc[:, [2, 7]].join(df1['C3']).values.tolist()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 03:35:28