Python:如果两列没有出现在另一列熊猫列中,如何在 Pandas 中删除行?



我有两个数据帧dfdf1df包含人员的名称和属性。

df  Name       Age
0   Jack       33
1   Anna       25
2   Emilie     49
3   Frank      19
4   John       42

而CCD_ 4包含两个人之间的联系人数量的信息。在df1中,我们可以有一些没有出现在df中的人。

df1    Name1    Name2   c
0      Frank    Paul    2
1      Julia    Anna    5
2      Frank    John    1
3      Emilie   Jack    3
4      Tom      Steven  2
5      Tom      Jack    5

我想删除Name1df1的所有行,或者Name2不出现在df中。

df1    Name1    Name2   c
0      Frank    John    1
1      Emilie   Jack    3

使用isin-

df1[df1[['Name1', 'Name2']].isin(df.Name).all(1)]
#    Name1 Name2  c
#2   Frank  John  1
#3  Emilie  Jack  3

或者:

df1[df1.Name1.isin(df.Name) & df1.Name2.isin(df.Name)]
#    Name1 Name2  c
#2   Frank  John  1
#3  Emilie  Jack  3

也可以使用np.isin

df1[np.isin(df1.Name1, df.Name) &
np.isin(df1.Name2, df.Name)]

相关内容

最新更新