[英]Extracting substring in python string using regular expression
我有一個這樣的熊貓專欄:
LOD-NY-EP-ADM
LOD-NY-EC-RUL
LOD-NY-EC-WFL
LOD-NY-LSM-SER
LOD-NY-PM-MOB
LOD-NY-PM-MOB
LOD-NY-RMK
LOD-NY-EC-TIM
我希望新列中的輸出為
EP
EC
EC
LSM
PM
PM
RMK
EC
我嘗試了這個:
pattern=df.column[0:10].str.extract(r"\w*-NY-(.*?)-\w*",expand=False)
盡管它適用於所有內容,但無法得到RMK並給出NaN,因為此后沒有任何內容,並且它查找-\\ w零次或多次。 但是,如果在RMK之后什么也沒有,那應該可以工作。
知道發生了什么事嗎?
如果熊貓的語法不熟悉,我們可以只使用它們的數組並使用正則表達式。
您可以只使用常規的python嗎? 假設df是您的數據框,而row是您的行的名稱。
series = df.row
new_list = [i.split('-')[2] for i in series]
new_series = pd.Series(new_list)
pattern=df.column[0:10].str.extract(r"\w*-NY-(\w+)",expand=False)
參見https://regex101.com/r/3uDpam/3
您正則表達式的意思字符串匹配必須有3 -
字符。 我更改了它,所以最后-XX
可能發生0或1次。
更新:已更改,因此第二組不被捕獲(已添加?:
:)
更新:感謝卡西米爾,在模式結束時刪除了無用的組
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.