簡體   English   中英

在 Pandas Dataframe 中提取字符串中兩個字符之間的子字符串

[英]Extracting Sub-string Between Two Characters in String in Pandas Dataframe

我有一列包含由不同單詞組成但始終具有相似結構結構的字符串。 例如:

2cm off ORDER AGAIN (191 1141)

我想提取在第二個空格之后開始並在左括號/括號之前的空格結束的子字符串。 所以在這個例子中,我想再次提取 ORDER。

這可能嗎?

您可以嘗試以下方法:

r"2cm off ORDER AGAIN (191 1141)".split(r"(")[0].split(" ", maxsplit=2)[-1].strip()
#Out[3]: 'ORDER AGAIN'

你可以在這里使用str.extract

df["out"] = df["col"].str.extract(r'^\w+ \w+ (.*?)(?: \(|$)')

請注意,即使字符串末尾沒有(...)項,此答案也是可靠的。

這是一個演示,顯示正則表達式邏輯正在運行。

如果數據模式與您發布的內容相似,那么我認為下面的代碼片段應該適合您:

import re
data = "2cm off ORDER AGAIN (191 1141)"

extr = re.match(r".*?\s.*?\s(.*)\s\(.*", data)       
if extr:
    print (extr.group(1))

你可以試試下面的代碼

s = '2cm off ORDER AGAIN (191 1141)'
second_space = s.find(' ', s.find(' ') + 1)
openparenthesis = s.find('(')
substring = s[second_space : openparenthesis]
print(substring) #ORDER AGAIN

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM