【发布时间】:2019-11-01 09:32:16
【问题描述】:
我已将 Excel 工作表中的一整列读入数据框。该列中的每个单元格都有一堆带数字的单词(如电话号码)。如何循环数据框并使用正则表达式使用特定模式提取数字。
我试过下面的代码
for i in (df):
df.str.contains('(4[0-9]{12}([0-9]{3})|[25][1-7][0-9]{14}|6(011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}')
我知道我的正则表达式错误,但我收到以下错误。
编辑:我已经更新了我的正则表达式。单元格有这样的数据
“你好,我想点东西……我的卡号是 45621……” 我想把卡号拿出来存一个文件。
Traceback (most recent call last):
File "c:/Program Files/Python37/Scripts/output.py", line 12, in <module>
df.str.contains('^f')
File "C:\Program Files\Python37\lib\site-packages\pandas\core\generic.py", line 5067, in __getattr__
return object.__getattribute__(self, name)
AttributeError: 'DataFrame' object has no attribute 'str'
【问题讨论】:
-
添加一些示例数据,以便我们查看您的“特定模式”是什么样的。
-
.str是为Series对象定义的,而不是DataFrame对象。请阅读docs -
@Erfan 是的,我添加了一个示例模式。
标签: python-3.x pandas dataframe