python中的grepl函数

2024-06-01 04:47:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我想重新创建一个从R到Python的代码片段。我有一个来自R(Python中的数据帧)的TIBLE,它看起来像这样:

column1       column2                                 column3
amsterdam     het dag calamiteit bij doen gratis dag  2013
rotterdam     blijdorp groet gratis burp het ik ben   2015

使用下面的代码,我试图将描述提取为单个字符串。 代码如下:

#R code
for (i in 1:nrow(tibble)) {
    des <- pull(tibble[i,2])
}

#Python code
for i in df:    
    des = df['column2'].str.split(expand=True).stack()

然后,des系列(我们从df['column']获得)在python中看起来像这样:

het
dag
calamiteit
bij
doen
gratis
dag
blijdorp
groet
burp
het
ik
ben

但是,然后我想将这段代码从R重新创建到Python,我不知道如何:

if (grepl("^\\s*$", des) == TRUE) { # if description is only whitespace then skip
    trns <- tibble(translatedText = "", detectedSourceLanguage = "", text = "")

尤其是grepl函数

在Python中它等于什么?最好的Python代码是什么?多谢各位


Tags: 代码dfikdagdesburphetcolumn2
2条回答

几乎完全等同于grepl的是re.match。 看看这个小例子:

import re
data = ["00het", "dags"]

matches = [re.match(r"\d{2}", str_) for str_ in data]

虽然第一个字符串有匹配项,但另一个字符串没有,因为其中没有两个数字。 我希望这可能是您将表达式从R转换为python的良好起点

我找到了一个完美的方法从上面重新创建R脚本。这是Python代码:

 if [re.match(r'^\s*$', i) for i in des]:
        trns = i

如果我有一系列的字符串,像这样:

root
wit
geel

with
asd

goed
black
red

然后在我用if语句运行它之后,我会得到如下结果:

[None,
None,
None,
None,
None,
None,
<re.Match object; span=(0, 1), match=' '>,
None,
<re.Match object; span=(0, 0), match=''>,
<re.Match object; span=(0, 1), match=' '>]

相关问题 更多 >