Python Pandas:检查同一列中另一列的字符串中是否包含一个列中的字符串
发布于 2021-01-29 16:28:46
我有一个这样的数据框:
RecID| A |B
----------------
1 |a | abc
2 |b | cba
3 |c | bca
4 |d | bac
5 |e | abc
并要在A和B之外创建另一个列C,以便对于同一行,如果列A的字符串包含在列B的字符串中,则C = True,否则C = False。
我正在寻找的示例输出是这样的:
RecID| A |B |C
--------------------
1 |a | abc |True
2 |b | cba |True
3 |c | bca |True
4 |d | bac |False
5 |e | abc |False
有没有办法在不使用循环的情况下在熊猫中快速执行此操作?谢谢
关注者
0
被浏览
149
1 个回答
-
您需要
apply
使用in
:df['C'] = df.apply(lambda x: x.A in x.B, axis=1) print (df) RecID A B C 0 1 a abc True 1 2 b cba True 2 3 c bca True 3 4 d bac False 4 5 e abc False
的另一个解决方案
list comprehension
速度更快,但必须没有NaN
s:df['C'] = [x[0] in x[1] for x in zip(df['A'], df['B'])] print (df) RecID A B C 0 1 a abc True 1 2 b cba True 2 3 c bca True 3 4 d bac False 4 5 e abc False