比较两个系列时,如何基于一个系列进行过滤?

时间:2020-01-28 14:44:47

标签: python pandas dataframe

我正在使用Pandas系列。我有一个要与另一个数字进行比较的数字列表,并且我想根据一个数字是否与另一个数字匹配返回True和False。示例:

phone_series = pd.Series(['5555555', '5542394', '3431111', '3432222'])
filter_list = pd.Series(['555', '222', '3431', '999'])

我尝试使用的是.isin Pandas方法,但它只匹配精确的模式。

phone_series.str[:3].isin(filter_list)

0    True
1    False
2    False
3    False
dtype: bool

如果过滤器列表只有3个字符,这很好,那么我可以使用电话系列中的前3个字符进行比较,但是列表中的某些字符是3、4甚至5。这就是输出应为:

True
False
True
False

1 个答案:

答案 0 :(得分:1)

Series.str.startswith与来自Series的称为filter_list的元组一起使用(如果list代替Series,则工作相同)

print (phone_series.str.startswith(tuple(filter_list)))
0     True
1    False
2     True
3    False
dtype: bool