我正在使用 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
最佳答案
使用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
关于python - 比较两个系列时,如何根据一个系列进行过滤?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59951260/