小编W. *_*ooi的帖子

将 re.search 函数应用于 Python 中的列

我有以下 Python 代码(我想要文本字段中特定数字的第一个匹配项):

import numpy as np
import pandas

data = {'A': [1, 2, 3], 'B': ['bla 4044 bla', 'bla 5022 bla', 'bla 6045 bla']}
df = pandas.DataFrame(data)

def fun_subjectnr(column):
    column = str(column)
    subjectnr = re.search(r"(\b[4][0-1][0-9][0-9]\b)",column)
    subjectnr1 = re.search(r"(\b[2-3|6-8][0-9][0-9][0-5]\b)",column)
    subjectnr = np.where(subjectnr == "" and subjectnr1 != "", subjectnr1, 
    subjectnr)
    return subjectnr1

df['C'] = df['B'].apply(fun_subjectnr)
Run Code Online (Sandbox Code Playgroud)

想要的输出:

 A    B                C
 1    bla 4044 bla    4044
 2    bla 5022 bla    None
 3    bla 6045 bla    6045
Run Code Online (Sandbox Code Playgroud)

它似乎不起作用。当我将 [0] 添加到正则表达式代码时,它会给出一个错误...(subjectnr = re.search(r"(\b[4][0-1][0-9][0-9]\ b)",列)[0]) …

python regex pandas

3
推荐指数
1
解决办法
1850
查看次数

模式(g)sub =列中的字符串(R)

我现在正在寻找很长一段时间,但我无法弄清楚如何替换字符串的实体,其中模式是列中的字符串,并且每行都不同.所以我有这些数据:

         var1                         var2                var3
"Sentence 1 is exiting, isnt it?"  "exiting"         
"Sentence 2 is boring, isnt it?"   "boring"
Run Code Online (Sandbox Code Playgroud)

我最终想要这个:

         var1                        var2                   var3
"Sentence 1 is exiting, isnt it?"  "exiting"         "Sentence 1 is, isnt it?"
"Sentence 2 is boring, isnt it?"   "boring"          "Sentence 2 is, isnt it?"
Run Code Online (Sandbox Code Playgroud)

因此,在每一行中都有另一种需要替换的模式.如果我做var3 = gsub(var2,"",var1)我得到一个错误,因为var2不是一个表达式.

谁能帮我?

string r gsub dataframe

0
推荐指数
1
解决办法
157
查看次数

标签 统计

dataframe ×1

gsub ×1

pandas ×1

python ×1

r ×1

regex ×1

string ×1