如何为Pandas DataFrame添加列对比两列内容是否一致?
解决DataFrame新增列判断两列内容是否相同的问题
你的代码失败主要有两个原因:
- 列名错误:你的DataFrame实际列名是
Column 1和Column 2,但代码里写的是Column A和Column B,导致找不到对应列。 - 判断逻辑错误:
in是检查字符串包含关系,而你需要的是两列内容完全相等,应该用==比较。
推荐解决方案(向量化操作,效率最高)
直接利用Pandas的向量化比较,比apply或循环高效得多:
# 先判断两列是否相等,得到布尔值列 df['Same'] = df['Column 1'] == df['Column 2'] # 将布尔值映射为Yes/No df['Same'] = df['Same'].map({True: 'Yes', False: 'No'}) # 或者合并成一行 df['Same'] = (df['Column 1'] == df['Column 2']).map({True: 'Yes', False: 'No'})
如果一定要用apply(修正后的写法)
如果你坚持用apply,修正列名和判断逻辑即可:
df['Same'] = df.apply(lambda row: 'Yes' if row['Column 1'] == row['Column 2'] else 'No', axis=1)
结果验证
运行后你的DataFrame会变成:
| Column 1 | Column 2 | Same |
|---|---|---|
| Apple | Banana | No |
| Chicken | Chicken | Yes |
| Dragonfruit | Egg | No |
| Fish | Fish | Yes |
内容的提问来源于stack exchange,提问作者user19828448
相关产品推荐
相关产品推荐

