[英]How to match string pattern?
我有一個數據集,其中 2 列的每一行都包含一個這樣的字符串 -
我試圖擺脫第一部分WO-05078125: AN20033315:
。 數字可能不同,但總是相同的模式。
請問我該如何解決這個問題?
您可以使用正則表達式。
import re
re.sub(pattern, repl(acement), string)
因為您不想用任何東西替換它,所以您可以使用空字符串來擺脫它。 您可以使用 'WO-05078125: ' 作為模式,但您也可以使用特殊字符,如\d(數字)或類似的東西。 更多請點擊這里
我認為這可以解決您的問題。
rows = ["WO-04981906: AN19550541: Answered Biomed questions", "WO-05078125: AN20033315: Ordered part for customer to exchange", ......]
first_part = []
second_part = []
last_part = []
for row in rows:
split_row = row.split(":")
first_part.append(split_row[0])
second_part.append(split_row[1])
last_part.append(split_row[2])
在first_part
中全是"WO-XXXXXXXX"
,在second_part
中全是"ANXXXXXXXX"
,在last_part
中全是描述。
解決問題最直接的方法之一是使用正則表達式,但我並不是說直接使用re
模塊。 相反,您可以使用pandas
及其名為repalce
的內置函數之一。 通過查看下面的代碼,您可以更深入地了解該過程。 由於您沒有提供可重現的示例,因此我使用您的輸入示例制作了一個 dataframe。
import pandas as pd
df = pd.DataFrame({"myColumn": ["WO-05078125: AN20033315: Ordered part for customer to exchange", "WO-04981906: AN19550541: Answered Biomed questions"]})
df["replaced"] = df["myColumn"].str.replace("WO\-\d+\:\sAN\d+\:\s", "")
df
我的專欄 | 更換 | |
---|---|---|
0 | WO-05078125:AN20033315:客戶更換的訂購部件 | 訂購的零件供客戶更換 |
1個 | WO-04981906:AN19550541:回答了生物醫學問題 | 回答生物醫學問題 |
WO\-\d+\:\sAN\d+\:\s
是我們在這種情況下使用的模式。 它用空字符串(“”)替換所需的部分。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.