熊猫和正则表达式 - 校对或校对 - 帮助软件请求

时间:2017-05-15 16:11:34

标签: python regex pandas

我很难知道我是否使用我的RegEx语法执行我真正想要它做的事情,并且不知道如何以特定于Python的方式校对它。

有人可以对此进行校对或帮我找到一个自我校对的地方,这是否适合显示Pandas DataFrame的行,其中“名称”列下的单元格值包含不在英文字母,数字中的字符,&各种常见的标点符号,或者我是否过度/反斜杠某些字符?

(我的猜测是我需要反斜杠反斜杠和方括号。)

(注意:我知道源数据在此列中永远不会有多行单元格值。)

filtereddf = df[~df['Name'].str.match(r'^[a-zA-Z\d_\s.&+-,!@#$%^*();\\/|<>"\'?=:\[\]]+$')]

此外,任何niftier技巧“各种标点字符”,同时确保通常被认为是“字母”的东西,只有英语26 a-z&amp;允许A-Z?

更新:

我得到了“Python Regex语法解释器”的建议,我需要在评论中进行自我校对 - 应该考虑将其作为替代方案,而不仅仅是要求校对帮助。对于这个措辞严厉的问题,我们很抱歉;更新。

1 个答案:

答案 0 :(得分:1)

如果要搜索非ASCII字符,请尝试使用此RegEx:

[^\x00-\x7F]
在Pandas中

df = df[df['Name'].str.contains('[^\x00-\x7F]')]