如何使用Pandas提取包含独立目标字符串的DataFrame行?
提取DataFrame中含独立特定字符串的行
需求:从DataFrame里筛选出包含目标字符串的行,要求目标字符串必须是空格分隔的独立单元,不能是其他连续字符串的一部分,同时该字符串可以出现在字段值的开头、中间或末尾。
示例场景
要提取包含"HC"的行,原始DataFrame如下:
import pandas as pd df = pd.DataFrame(columns=['test']) df['test'] = ['HC', 'CHC', 'HC RD', 'RD', 'MRD', 'CEA', 'CEA HC']
原始数据展示:
test 0 HC 1 CHC 2 HC RD 3 RD 4 MRD 5 CEA 6 CEA HC
期望输出
只保留"HC"作为独立单元的行:
test 0 HC 2 HC RD 6 CEA HC
解决方案
利用正则表达式的单词边界特性来匹配独立的目标字符串,pandas的str.contains方法支持正则匹配:
# 筛选包含独立"HC"的行 filtered_df = df[df['test'].str.contains(r'\bHC\b', regex=True)] print(filtered_df)
原理说明
正则中的\b表示单词边界,它会匹配单词的起始或结束位置(这里的"单词"以空格、字符串首尾为边界),这样就能精准匹配到作为独立单元的"HC",不会误匹配"CHC"这类包含"HC"但不是独立单元的字符串。
内容的提问来源于stack exchange,提问作者branwen85
相关产品推荐
相关产品推荐

