python - 比较两个系列时,如何根据一个系列进行过滤?

标签 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

最佳答案

使用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/

相关文章:

Pandas:按两列分组以获得另一列的总和

根据一列 reshape R 中的数据框

python - Pandas 日期时间格式

python - 所有 pandas 列都显示为字符串

python - 如何过滤数据帧的两个系列,其中一个系列中列表元素的值为 true

python - 需要帮助格式化 .txt 文件并将其放入数据框中

python - 从分层 DataFrame 中按最大值选择行

python - 有没有一种方法可以比使用 Sympy 的 nroot() 更快地找到四阶多项式的根?

python - tensorflow (label_image)中的input_layer是什么?

python - Django React axios 发布请求 : how to get csrftoken cookie?