如何从Pandas DataFrame列中提取含ABC前缀加后5位的内容?
Pandas提取指定格式文本方法
你已经完成了包含"ABC"行的筛选,接下来可以用Pandas的str.extract()方法结合正则表达式提取目标内容:
基础提取(匹配ABC后紧跟任意5个字符)
假设筛选后的DataFrame为filtered_df,执行以下代码提取符合"ABC+5个任意字符"格式的内容:filtered_df = df[df['Column'].str.contains('ABC', na=False)] filtered_df['Extracted_Content'] = filtered_df['Column'].str.extract(r'(ABC.{5})')正则表达式
r'(ABC.{5})'的含义:ABC:匹配固定前缀.{5}:匹配任意5个字符(包括数字、字母、符号等)- 括号
()用于捕获需要提取的内容
限定数字的情况(如果后续5个字符仅为数字)
若目标内容是ABC后紧跟5位数字(比如ABC12345这类格式),把正则改成r'(ABC\d{5})'即可:filtered_df['Extracted_Content'] = filtered_df['Column'].str.extract(r'(ABC\d{5})')这里
\d{5}表示匹配连续5个数字。处理多个匹配项
如果某行文本里有多个符合格式的内容(比如"ABC12345 测试ABC67890"),str.extract()只会提取第一个匹配项。要提取所有匹配项,改用str.extractall():extracted_all = filtered_df['Column'].str.extractall(r'(ABC.{5})') # 可将结果整理后合并回原DataFrame extracted_all = extracted_all.reset_index().rename(columns={0: 'Extracted_Content'})
内容的提问来源于stack exchange,提问作者Kulwant
相关产品推荐
相关产品推荐

