我有一个系列,我想检查列表中是否存在任何字符串。例如:
Series A:
A, B
A, B, C
E, D, F
List = ['A', 'B']
我想返回的是List的任何元素在系列A中,例如:
True
True
False
谢谢!
答案 0 :(得分:1)
假设您的系列由字符串组成,则可以使用set.intersection
(&
):
L = ['A', 'B']
s = pd.Series(['A, B', 'A, B, C', 'E, D, F'])
res = s.str.split(', ').map(set) & set(L)
print(res)
0 True
1 True
2 False
dtype: bool
答案 1 :(得分:1)
可以使用np.isin
s.agg(lambda k: np.isin(k, List).any())
0 True
1 True
2 False
dtype: bool
答案 2 :(得分:0)
此过滤器应为您提供一个T / F向量:A.apply(lambda _: _ in List)
此外,您提到Series
,但这似乎是指DataFrame
。
答案 3 :(得分:0)
使用issubset
s.str.split(', ').apply(lambda x : {'A','B'}.issubset(tuple(x)))
Out[615]:
0 True
1 True
2 False
Name: c, dtype: bool
答案 4 :(得分:0)
您可以将列表str.contains
和join
与|
一起使用,以查找列表的任何元素,例如:
print (s.str.contains('|'.join(L))) #with @jpp definition of variable s and L
0 True
1 True
2 False
dtype: bool