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

如何用Pandas基于行级双整数条件比较两列并执行操作?

Pandas行级双条件判断解决方案

构造示例数据

先还原你的样例DataFrame:

import pandas as pd

data = {
    'Column A': [120, 140, 110],
    'Column B': [3, 4, 1]
}
df = pd.DataFrame(data)

正确实现方式

方式一:布尔索引筛选后遍历

先通过布尔条件筛选出符合要求的行,再遍历执行操作,这种方式效率更高(Pandas推荐的向量化操作思路):

# 组合双条件:Column A>120 且 Column B>2
condition = (df['Column A'] > 120) & (df['Column B'] > 2)
filtered_df = df[condition]

# 遍历筛选结果执行操作
for _, row in filtered_df.iterrows():
    # 这里替换为你需要的打印或其他逻辑
    print(f"匹配行:Column A={row['Column A']}, Column B={row['Column B']}")

方式二:逐行apply处理

如果需要对每一行都做判断(哪怕不符合条件也要执行其他逻辑),可以用apply逐行处理:

def handle_row(row):
    if row['Column A'] > 120 and row['Column B'] > 2:
        # 符合条件时的操作
        print(f"匹配行:Column A={row['Column A']}, Column B={row['Column B']}")
    # 可以添加不符合条件时的逻辑

df.apply(handle_row, axis=1)

你之前出错的原因

直接用if搭配df.loc会报错,因为df.loc返回的是布尔Series(一组布尔值),而if语句只能判断单个布尔值,无法直接处理整个Series。必须先通过布尔索引筛选出子集,或者用apply拆解到行级判断。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 05:45:05