我有三个字段TEL1,TEL2,TEL3,我想查看另一个DF中是否存在值。我可以一次做一列,但是想知道如果三个字段中的任何一个在查找Dataframe中包含一个值,我是否可以快速隐藏行。
我目前正在使用:
df1 = Sample['TEL1'].isin(DNC['NUMBER'])
Dataframe我正在反对:
NUMBER
0 555
Dataframe我正在查找:
TEL1 TEL2 TEL3 NAME
0 222 555 555 BEN
1 222 555 222 BEN
2 555 222 555 BEN
3 222 222 222 BEN
4 555 555 555 BEN
预期结果(TEL1-TEL3列中不包含555的行):
TEL1 TEL2 TEL3 NAME
3 222 222 222 BEN
提前谢谢你,本。
您可以在整个数据框(或您感兴趣的列)上使用isin
,然后检查哪些行都是False
(即没有任何行)。
ix = ~df.loc[:, 'TEL1':'TEL3'].isin(DNC['NUMBER'].values).any(axis=1)
df.loc[ix]
注意我使用了DNC['NUMBER']
的值,因为它会尝试匹配索引。所以它会在数据框中寻找555
,其中索引是0
,如果你把它保存为一个系列。