在python pandas中多次出现相同的分隔符之间提取字符串

Rag*_*hav 5 python substring pandas

列“测试”具有多次出现相同分隔符的字符串。我试图获取这些分隔符内的字符串。你能帮忙吗。

例子:

Test
|||||CHNBAD||POC-RM0EP7-01-A
Run Code Online (Sandbox Code Playgroud)

我的代码:

df["Fetch"]=df["Test"].str.rsplit("|", 2).str[-2]
Run Code Online (Sandbox Code Playgroud)

但它给了我一个输出为POC-RM0EP7-01-A.

我希望从字符串中获取“ CHNBAD

Rav*_*h13 4

使用您显示的示例,请尝试执行以下操作。我们可以在这里使用str.extractpf Pandas 函数。在列上应用str.extract函数Test并创建Fetch在 DataFrame 中命名的新列。

df['Fetch'] = df['Test'].str.extract(r'^\|+([^|]*)\|.*',expand=False)
Run Code Online (Sandbox Code Playgroud)

DataFrame 如下:

    Test                            Fetch
0   |||||CHNBAD||POC-RM0EP7-01-A    CHNBAD
Run Code Online (Sandbox Code Playgroud)

正则表达式的解释:

^\|+     ##Matching 1 or more matches of | from starting of value.
([^|]*)  ##Creating 1st capturing group which has everything till next | comes.
\|.*     ##Matching | and everything till last of value.
Run Code Online (Sandbox Code Playgroud)