我的帐户名称看起来像GH85036, LG95639等在一个列中。我想检查整个列的格式,这样我就可以编辑那些不遵循格式的列。这是我第一次使用正则表达式。
到目前为止我已经得到
for i in Reports['Account Name']:
match = re.findall(r'[A-Z]{2}[0-9][0-9][0-9][0-9][0-9]', Reports['Account Name']) is None
我得到的错误信息:
<ipython-input-77-86f17b9d34ff> in <module>()
1 for i in Reports['Account Name']:
----> 2 match = re.findall(r'[A-Z]{2}[0-9][0-9][0-9][0-9][0-9]', Reports['Account Name']) is None
C:Program FilesAnaconda3libre.py in findall(pattern, string, flags)
221
222 Empty matches are included in the result."""
--> 223 return _compile(pattern, flags).findall(string)
224
225 def finditer(pattern, string, flags=0):
TypeError: expected string or bytes-like object
假设正确/可接受的帐号是两个大写字母后跟5位数字,我们可以在整个列上使用str.contains
来标记任何不匹配的值:
Reports[~Reports["Account Name"].str.contains(r'^[A-Z]{2}[0-9]{5}$', regex=True)]