使用文本数据集时,我有一个在数据帧中给出不规则结果的提取。我不是很擅长正则表达式,从来没有做过一个过滤器尝试一个这样的帮助将不胜感激。
我正在尝试筛选a列中的第4行;6模式是4个数字,一个字母,一个空格,/空格,2个数字,空格,/,空格,5个数字,空格,/,然后是后面的数字。
a b c d
0 1234B:Program Name / Title Chapter Page Number ID Code
1 1234B:Program Name / Title Chapter Page Number ID Code
2 1234B:Program Name / Title Chapter Page Number ID Code
3 1234B / 01 / 2 (blank) (blank) ID Code
4 1234B / 01 / 23456 / Title Chapter Page Number ID Code <---- Filter for this
5 1234B / 01 / 2 (blank) (blank) ID Code
6 1234B / 01 / 23456 / Title Chapter Page Number ID Code <---- Filter for this
我尝试了以下代码:
# Filter by pattern
import pandas as pd
import numpy as np
import re
pattern = re.compile("[0-9][0-9][0-9][0-9][B][\s][/][\s][0-9][0-9][\s][/][\s][0-9][0-9][0-9][0-9][0-9][\s]+[/]")
df = df[df['a'].apply(pattern)]
结果是TypeError:'_sre.SRE_Pattern'对象不可调用。看来我用错了。另外,我的正则表达式没有通配符来解释a列中的其余数据。过滤列a的pythonic方法是什么?查看列a中的前20个字符并对其进行模式匹配?