小编kcE*_*ike的帖子

在 pandas 中使用正则表达式验证字符串

我需要一点帮助。

我对 Python 还很陌生(我使用与 Anaconda 捆绑在一起的 3.0 版本),并且我想使用正则表达式来验证/返回仅包含与条件匹配的有效数字的列表(例如 \d{11} 表示 11 位数字)。我正在使用 Pandas 获取列表

df = pd.DataFrame(columns=['phoneNumber','count'], data=[
    ['08034303939',11],
    ['08034382919',11],
    ['0802329292',10],
    ['09039292921',11]])
Run Code Online (Sandbox Code Playgroud)

当我使用以下方式退回所有物品时

for row in df.iterrows(): # dataframe.iterrows() returns tuple
    print(row[1][0])
Run Code Online (Sandbox Code Playgroud)

它返回所有没有正则表达式验证的项目,但是当我尝试用这个验证时

for row in df.iterrows(): # dataframe.iterrows() returns tuple
    print(re.compile(r"\d{11}").search(row[1][0]).group())
Run Code Online (Sandbox Code Playgroud)

它返回一个属性错误(因为不匹配值的返回值为 None。

我该如何解决这个问题,或者有更简单的方法吗?

python regex string dataframe pandas

2
推荐指数
1
解决办法
3874
查看次数

标签 统计

dataframe ×1

pandas ×1

python ×1

regex ×1

string ×1