如何使用一行中所有括号内包含的值创建一个新列?

我想从中提取括号的列:


   SktNo                         Description

0     19  WATER CALTROP (LING KOK) (CHN) K10

我最初能够通过提取括号中的值来创建一个新列:


df['Origin'] = df['Description'].str.extract(r"\(([A-Za-z]+)\)", expand=False)

但这取的是其中字母数量最少的括号,而不是两个。


我希望新列包含括号之间的两个字符串,如下所示:


Origin 

LING KOK, CHN


一只名叫tom的猫
浏览 127回答 1
1回答

不负相思意

使用Series.str.findall+ Series.str.join:df['Origin'] = df['Description'].str.findall(r'\((.*?)\)').str.join(', ')结果:   SktNo                         Description         Origin0     19  WATER CALTROP (LING KOK) (CHN) K10  LING KOK, CHN
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python