假设以下内容:
df1:
x y z
1 10 11
2 20 22
3 30 33
4 40 44
1 20 21
1 30 31
1 40 41
2 10 12
2 30 32
2 40 42
3 10 31
3 20 23
3 40 43
4 10 14
4 20 24
4 30 34
df2:
x b
1 100
2 200
df3:
y c
10 1000
20 2000
我想要df1
中的所有行,分别在x
或y
中出现df2
或df3
的情况,在这种情况下>
退出:
x y z
1 10 11
2 20 22
1 20 21
1 30 31
1 40 41
2 10 12
2 30 32
2 40 42
3 10 31
3 20 23
4 10 14
4 20 24
我想在纯熊猫中做到这一点,没有for循环,对我来说似乎已经足够标准了,但是我真的不知道要寻找什么
答案 0 :(得分:3)
您可以在两种情况下都使用isin
,将条件与bitwise OR
链接起来,并对数据框执行boolean indexation
,结果如下:
df1[df1.x.isin(df2.x) | df1.y.isin(df3.y)]