首页 文章

IF系列A包含B系列的值

提问于
浏览
2

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

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

和while循环迭代A系列:

while j < len(A):

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

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

我在A.isin()的几个小时后真的很努力,但我没有成功 .

感谢即将到来的支持!

1 回答

  • 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')
    

    您可以在每个循环中使用带有 if 语句的显式 for 循环 . 使用此方法,建议使用 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
    

相关问题