TBH,您目前的做法对我来说不错;我看不到使用
isin或
filter改进它的方法,因为看不到如何
isin仅使用字典中的列或
filter如何充当
all。
不过,我不喜欢对列名进行硬编码,因此我可能会将其写为
>>> keep = {'A': [1, 3], 'B': [4, 7, 12]}>>> df[df[list(keep)].isin(keep).all(axis=1)] A B C2 3 7 18或与
.loc我一起使用。

TBH,您目前的做法对我来说不错;我看不到使用
isin或
filter改进它的方法,因为看不到如何
isin仅使用字典中的列或
filter如何充当
all。
不过,我不喜欢对列名进行硬编码,因此我可能会将其写为
>>> keep = {'A': [1, 3], 'B': [4, 7, 12]}>>> df[df[list(keep)].isin(keep).all(axis=1)] A B C2 3 7 18或与
.loc我一起使用。