簡體   English   中英

字符串列表中的模式匹配,在pandas中創建新列

[英]Pattern Match in List of Strings, Create New Column in pandas

我有一個具有以下常規格式的熊貓數據框:

id,product_name_extract
1,00012CDN
2,14311121NDC
3,NDC37ba
4,47CD27

我還有一個要匹配的產品代碼列表(不幸的是,我必須進行NLP提取,因此這不是一個干凈的匹配),然后使用匹配的列表值創建一個新列:

product_name = ['12CDN','21NDC','37ba','7CD2']

id,product_name_extract,product_name_mapped
1,00012CDN,12CDN
2,14311121NDC,21NDC
3,NDC37ba,37ba
4,47CD27,7CD2

我不太擔心會發生碰撞。

如果我只需要使用包含和列表值與“ |”串聯的True / False指示符,這將很容易 進行交替,但現在我對如何創建完全匹配的列值有些困惑。 任何技巧或竅門表示贊賞!

由於您不必擔心沖突,因此可以將您的product_name列表與|一起加入| 運算符,並將其用作正則表達式:

df['product_name_mapped'] = (df.product_name_extract.str
                             .findall('|'.join(product_name))
                             .str[0])

結果:

>>> df
   id product_name_extract product_name_mapped
0   1             00012CDN               12CDN
1   2          14311121NDC               21NDC
2   3              NDC37ba                37ba
3   4               47CD27                7CD2

暫無
暫無

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

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