对DF中的多个序列应用.isin

2024-10-06 14:25:40 发布

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

我有三个字段TEL1,TEL2,TEL3,我想看看值是否存在于另一个DF中。我可以一次只做一列,但是我想知道如果三个字段中的任何一个包含lookup数据框中的值,是否有一种快速的方法可以隐藏行

我目前正在使用:

df1 = Sample['TEL1'].isin(DNC['NUMBER'])

我正在查看的数据帧:

    NUMBER
0   555

我正在查找的数据帧:

    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

先谢谢你,本


Tags: 数据sample方法namenumberdflookupdf1
1条回答
网友
1楼 · 发布于 2024-10-06 14:25:40

您可以在整个数据帧上使用isin(或者使用您感兴趣的列),然后检查哪些行都是False(即,没有任何

ix = ~df.loc[:, 'TEL1':'TEL3'].isin(DNC['NUMBER'].values).any(axis=1)
df.loc[ix]

注意,我使用了DNC['NUMBER']的值,因为它将尝试以其他方式匹配索引。所以它会在数据帧中寻找555,如果你把它保持为一个序列,索引就是0

相关问题 更多 >