我有两个数据帧df
和df1
。df
包含人员的名称和属性。
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
我想删除Name1
中df1
的所有行,或者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)]