如何检查DataFrame某列行值是否存在于另一列的任意行中?
问题:判断DataFrame中A列值是否存在于B列并添加Bool列
原始数据与预期输出
原始Excel表格内容:
A B 1A 100 2A 1A 3A 101 5A 1A
预期输出:
A B Bool 1A 100 False 2A 1A True 3A 101 False 5A 1A True
需求是判断df['A']中的值是否存在于df['B']中,为符合条件的行标记True,不符合的标记False(注:原始预期输出中未标记的行实际应为False)。
用户错误代码及修正
用户尝试的代码存在两处问题:
import pandas as pd df = pdf.read_excel('test.xlsx') # 别名拼写错误:pd写成了pdf df['A'].isin(df['B']) # 未将结果赋值给DataFrame的新列
正确代码
import pandas as pd # 读取Excel文件 df = pd.read_excel('test.xlsx') # 添加Bool列,判断A列值是否在B列中 df['Bool'] = df['A'].isin(df['B']) # 打印结果 print(df)
说明
- 修正拼写错误:将
pdf.read_excel改为pd.read_excel,与导入时的别名pd保持一致。 - 将
isin()方法的返回结果赋值给新列df['Bool'],这样才能在DataFrame中保留判断结果,得到预期的输出结构。
内容的提问来源于stack exchange,提问作者abd
相关产品推荐
相关产品推荐

