我在pandas数据框中有一个字符串列。
如果第一列中匹配以下模式,我想用0/1标记另一列。
该列的典型值如下:
“ b064571d-9d72-4225-8ccf-5528622c5680”
8x-4x-4x-4x-12x
其中x是一个字符串,后跟连字符(该字符为字母数字,并且可以大写或小写)
我是否使用np.where和正则表达式匹配-不确定会是什么?
非常感谢
我已尽力而为-但不确定正则表达式的语法是否与模式匹配,并带有连字符分隔符
8x-4x-4x-4x-12x
s1 = pd.Series(['b064571d-9d72-4225-8ccf-5528622c5680', 'dog', 'house
and parrot', '23', np.NaN])
s1.str.contains('[^a-zA-Z0-9]', regex=True)
答案 0 :(得分:0)
该模式可能如下所示:
s1.str.contains(r'[a-zA-Z0-9]{8}\-[a-zA-Z0-9]{4}\-[a-zA-Z0-9]{4}\-[a-zA-Z0-9]{4}\-[a-zA-Z0-9]{12}', regex=True)