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

时间:2018-07-22 14:23:23

标签: python pandas dataframe merge

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

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

df1包含两个人之间的联系数量信息。在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

我要删除df1Name1Name2的所有行,而不显示在df中。

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

也可以使用firstIndex(where:)

Hello
.Hello
Hello.world