列表中的熊猫系列中的字符串

时间:2018-08-13 16:50:17

标签: python pandas series

我有一个系列,我想检查列表中是否存在任何字符串。例如:

Series A:
A, B
A, B, C
E, D, F

List = ['A', 'B']

我想返回的是List的任何元素在系列A中,例如:

True
True
False

谢谢!

5 个答案:

答案 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.containsjoin|一起使用,以查找列表的任何元素,例如:

print (s.str.contains('|'.join(L))) #with @jpp definition of variable s and L
0     True
1     True
2    False
dtype: bool