想象一下,我有幾個值,如
test_val1 = 'E 18th ST AND A AVE'
test_val2 = 'E 31ST ST AND A AVE'。
我想找到第18個、第31個等,然后用18/31替換--基本上去掉后綴,但保留整個字串的內容。
預期值
test_val1 = 'E 18 ST AND A AVE'
test_val2 = 'E 31 ST AND A AVE'。
請注意,我不想洗掉與 "街道 "相對應的 "St",所以不可能進行盲目的替換。
我的方法是使用下面的方法(目前為'th'),但這并不奏效,因為該函式不能將值/文本保留在記憶體中以回傳它。
import regex as re
test_val1.replace('d{1,}TH', 'd{1,}', regex=True)
我有一個充滿這些值的列,所以一個我可以在Pnadas列上運行/應用的解決方案將非常有用。
uj5u.com熱心網友回復:
你提到它不作業,因為函式不能在記憶體中保留值/文本來回傳它。是否必須不把值存盤到不同的變數中?
t1 = 'E 18th ST AND A AVE'。
for t1 in column: #t1是資料幀列中的地址。
t2 = t1.split()
t2[1] = re.sub(r'(TH|ST)', ' ,t2[1]
t1 = ' '/span>.join(t2)
uj5u.com熱心網友回復:
我想我可以幫助你進行REGEX替換。看起來你想使用的函式實際上是sub而不是replace。
這是函式的簽名:
re.sub(pattern, repl, string[, count, flags])
檢查官方檔案.
。另外這里是一個類似問題的杰出答案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/331568.html
標籤:
