簡體   English   中英

Substring function 提取部分字符串

[英]Substring function to extract part of the string

data = {'desc': ['ADRIAN PETER - ANN 80020355787C - 11 Baillon Pass.pdf', 'AILEEN MARCUS - ANC 800E15432922 - 5 Mandarin Way.pdf',
               'AJITH SINGH - ANN 80020837750 - 11 Berkeley Loop.pdf', 'ALEX MARTIN-CURTIS - ANC 80021710355 - 26 Dovedale St.pdf',
               'Alice.Smith\Jodee - Karen - ANE 80020428377 - 58 Harrisdale Dr.pdf']}
df = pd.DataFrame(data, columns = ['desc'])
df

從數據框中,我想創建一個名為 ID 的新列,並且在該 ID 中,我希望只有那些在 ANN、ANC 或 ANE 之后開始的值。 所以我期待如下結果。

ID
80020355787C 
800E15432922 
80020837750 
80021710355 
80020428377 

我嘗試運行下面的代碼,但沒有得到想要的結果。 感謝您對此的幫助。

df['id'] = df['desc'].str.extract(r'\-([^|]+)\-')

您可以使用- AN[NCE] (800[0-9A-Z]+) - ,其中:

  • AN[NCE]按字面意思匹配AN后跟NCE
  • 800[0-9A-Z]+按字面意思匹配800后跟一個或多個介於09之間或介於AZ之間的字符。
>>> df['desc'].str.extract(r'- AN[NCE] (800[0-9A-Z]+) -')
              0
0  80020355787C
1  800E15432922
2   80020837750
3   80021710355
4   80020428377

如果不是所有的 ID 都以“800”開頭,您可以將其從模式中刪除。

暫無
暫無

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

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