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

如何使用Pandas基于两列值匹配创建0/1条件列?

在Pandas中根据两列匹配情况创建新列

你可以通过以下几种简洁高效的方式实现需求,优先推荐向量化操作以保证处理性能:

方法一:直接比较列并转换为整数

Pandas中布尔值True转为整数是1,False转为整数是0,因此直接对两列的比较结果做类型转换即可:

import pandas as pd

# 创建示例DataFrame
df = pd.DataFrame({
    'col1': [1, 2, 3, 4],
    'col2': [1, 3, 3, 5]
})

# 创建第三列
df['match'] = (df['col1'] == df['col2']).astype(int)

执行后DataFrame的结果:

col1  col2  match
0     1     1      1
1     2     3      0
2     3     3      1
3     4     5      0

方法二:使用numpy.where函数

如果后续需要扩展更复杂的条件逻辑,可以用numpy.where实现:

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'col1': [1, 2, 3, 4],
    'col2': [1, 3, 3, 5]
})

df['match'] = np.where(df['col1'] == df['col2'], 1, 0)

得到的结果与方法一完全一致。

注意事项

  • 避免使用df.apply逐行处理的方式(比如df.apply(lambda x: 1 if x['col1'] == x['col2'] else 0, axis=1)),这种方法在数据量较大时效率极低,远不如上述向量化操作。
  • 如果列中存在缺失值NaN,==比较会返回False,若需特殊处理缺失值,可结合pd.isna补充判断逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 14:35:00