按多列查找行

2024-09-24 00:26:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我在一个大的pandas表上迭代,如果我发现一行与另一个表中的几列相匹配,我想做些什么。两个表中都有更多不需要比较的列。例如,output table有A、B、C、D和E列,blacklist table有A、B、C、D、E和F列。每当output table中的一行与A和B列中的blacklist table匹配时,我都想做些什么。在阅读了有关numpy和pandas的各种主题之后,我走了这么远,但现在我被卡住了:

elif outputframe[((outputframe.A.isin(blacklist.A)) & (outputframe.B.isin(blacklist.B))).all()]:
    # Do something

它只是说关键错误:真。我希望结果为真/假,以便在if条件下使用它。你知道吗

我也尝试过类似的方法(编译和执行),但是当必须有超过1000个匹配项时,却找不到任何结果:

elif (currentrow['A'] in blacklist.A) & (currentrow['B'] in blacklist.B):
    # Do something

所有值都是unicode类型的字符串。你知道吗


Tags: innumpypandas主题outputtablealldo