如果系列A包含系列B的值,那么

时间:2018-12-09 22:53:39

标签: python python-3.x pandas series

我在熊猫中有两个系列-python:

A = pd.Series (["W1","W2","W3","W4"])
B = pd.Series (["W1","W2","W3"])

和一会儿循环迭代系列A:

while j < len(A): 

现在我想要某种IF语句,当A的实际值j在B系列中也是如此时,然后打印“ It its in B”:

IF A[j] == B: 
   print("It its in B")

自从使用A.isin()几个小时以来,我确实在尝试,但是我没有成功。

感谢即将提供的支持!

1 个答案:

答案 0 :(得分:0)

Pandas通常不建议使用显式的Python级循环。比较习惯的做法是将pd.Series.isin与布尔索引一起使用:

print(A[A.isin(B)])

0    W1
1    W2
2    W3
dtype: object

然后根据需要进行迭代;

res = A[A.isin(B)]
for val in res.values:
    print(f'{val} is in B')

可以在每个循环中使用带有for语句的显式if循环。使用这种方法,建议使用set进行O(1)查找:

B_set = set(B)
for i in range(len(A)):
    val = A.iat[i]
    if val in B_set:
        print(f'{val} is in B')

W1 is in B
W2 is in B
W3 is in B