如何在Python中使用.isin方法打印返回False的行信息
解决方法
你可以直接利用布尔序列对原DataFrame进行筛选,获取不匹配的行,再遍历这些行输出索引和名称。修改后的代码如下:
import pandas as pd data = ["Darcy Hayward","Barbara Walters","Ruth Fraley","Minerva Ferguson","Tad Sharp","Lesley Fuller","Grayson Dolton","Fiona Ingram","Elise Dolton"] df = pd.DataFrame(data, columns=['Names']) data1 = ["Darcy Hayward","Barbara Walters","Ruth Fraley","Minerva Ferguson","Tad Sharp","Lesley Fuller","Grayson Dolton","Fiona Ingram"] df1 = pd.DataFrame(data1, columns=['Names']) # 获取所有不匹配的行 non_matching_rows = df[~df["Names"].isin(df1["Names"])] # 遍历输出索引和对应名称 for idx, row in non_matching_rows.iterrows(): print(f"索引: {idx}, 名称: {row['Names']}")
关键说明:
~df["Names"].isin(df1["Names"]):~是取反运算符,将isin返回的布尔序列反转,得到所有不匹配行的标记。df[布尔序列]:用布尔序列直接筛选原DataFrame,得到仅包含不匹配行的新DataFrame。iterrows():遍历筛选后的DataFrame,每次返回行的索引idx和行数据row,方便提取索引和名称信息。
运行代码后会输出:
索引: 8, 名称: Elise Dolton
内容的提问来源于stack exchange,提问作者Aravind Viswanathan
相关产品推荐
相关产品推荐

