You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python:如何筛选以'dh'或'kj'开头的Pandas Series元素

解决Pandas Series筛选特定前缀元素的问题

嘿,我来帮你搞定这个问题!你遇到的情况很正常——str.startswith()和str.match()本身就是用来返回布尔值的,它们的作用是标记每个元素是否符合条件。要拿到实际的元素值,只需要用这些布尔值来索引原Series就可以啦!

下面给你两种具体的实现方法:

方法一:使用str.startswith() + 布尔索引

str.startswith()支持传入一个元组来匹配多个前缀,再用返回的布尔Series去过滤原数据:

import pandas as pd
s = pd.Series(['abdhd','abadh','aba', 'djjb','kjsdhf','abwer', 'djd', 'kja'])

# 筛选以'dh'或'kj'开头的元素
filtered_series = s[s.str.startswith(('dh', 'kj'))]
print(filtered_series)

运行结果:

4    kjsdhf
7       kja
dtype: object

方法二:使用str.match() + 正则表达式

用正则的^表示字符串开头,|表示逻辑“或”,同样结合布尔索引筛选:

filtered_series = s[s.str.match(r'^(dh|kj)')]
print(filtered_series)

得到的结果和方法一完全一致。

额外技巧:转换成列表

如果需要把筛选后的结果转换成普通Python列表,直接调用.tolist()方法就行:

filtered_list = filtered_series.tolist()
print(filtered_list)  # 输出: ['kjsdhf', 'kja']

简单来说,你之前拿到的布尔值就是筛选的“钥匙”,把它放进原Series的方括号里,就能打开符合条件的元素大门啦😉

内容的提问来源于stack exchange,提问作者M-M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:28:32