我在熊猫中有两个系列-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()几个小时以来,我确实在尝试,但是我没有成功。
感谢即将提供的支持!
答案 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