Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在数据帧单元格中查找特定格式_Python_Regex_Pandas_Dataframe - Fatal编程技术网

Python 在数据帧单元格中查找特定格式

Python 在数据帧单元格中查找特定格式,python,regex,pandas,dataframe,Python,Regex,Pandas,Dataframe,我有一个数据框,在其中我需要检查列的每个单元格中的内容是否遵循特定的格式 Index Column A 0 abcd 1 abc_1 2 abc_xy 3 abc_12 4 zabc_12 如何查找与以下格式匹配的单元格:“abc_u2;+number”,以便找到索引1和3中的值 到目前为止,我知道如何使用regex查找单元格的“abc”或数字部分: re.match('abc_', df['Column A'])

我有一个数据框,在其中我需要检查列的每个单元格中的内容是否遵循特定的格式

Index    Column A
0        abcd
1        abc_1
2        abc_xy
3        abc_12
4        zabc_12
如何查找与以下格式匹配的单元格:“abc_u2;+number”,以便找到索引1和3中的值
到目前为止,我知道如何使用regex查找单元格的“abc”或数字部分:

re.match('abc_', df['Column A'])
但我不知道如何寻找完整的模式。任何帮助都将不胜感激,谢谢

您可以使用:

或者,如果该模式与整个字符串匹配

df['Column A'].str.contains(r'^abc_\d+$')
请注意,默认情况下,
pat
参数被视为正则表达式,因此您不必使用
regex=True
。您可以使用
na
参数定义缺失值的填充值

图案细节

  • ^
    -字符串的开头(此处需要它,因为
    str.contains
    使用
    re.search
    ,而不是
    re.match
    ,因此不会将匹配锚定在字符串的开头)
  • abc
    -文字子字符串
  • \d+
    -1+位
  • $
    -字符串结束

@MAK7我刚刚添加了图案说明,这在这里很重要。非常有用,非常感谢。我刚要问的不是
\d
只找一个位数。
+$
迎合了这一点@MAK7这也取决于实际需求。如果数字后面应该有字符串结尾,
^abc\ud+$
是正确的模式。如果需要确保字符串以
abc\uu
开头,则
^abc\ud
可以。这两种模式都按照您的要求执行,它们返回第1行和第3行。
df['Column A'].str.contains(r'^abc_\d+$')