Pandas 需要提取数据框中括号内的所有内容

Pandas 需要提取数据框中括号内的所有内容,pandas,dataframe,text-extraction,data-extraction,Pandas,Dataframe,Text Extraction,Data Extraction,我只需要提取dataframe中括号内的内容。我尝试使用str.exratct(),但它不起作用。我需要帮忙拔牙 数据:(位于数据框中,这是来自一行的样本数据) 作者:陈天旭(陈天旭)[1];Tribbitt MA(Tribbitt Mark A.)[2];杨毅(杨毅)[3];李XM(李晓梅)[4]您可以使用正则表达式: import pandas as pd import re dataset = pd.DataFrame([{'DATA': 'By:Chen TX (Chen Tianxu

我只需要提取dataframe中括号内的内容。我尝试使用str.exratct(),但它不起作用。我需要帮忙拔牙

数据:(位于数据框中,这是来自一行的样本数据)


作者:陈天旭(陈天旭)[1];Tribbitt MA(Tribbitt Mark A.)[2];杨毅(杨毅)[3];李XM(李晓梅)[4]

您可以使用
正则表达式

import pandas as pd
import re

dataset = pd.DataFrame([{'DATA': 'By:Chen TX (Chen Tianxu)[ 1 ] ; Tribbitt MA (Tribbitt Mark A.)[ 2 ] ; Yang Y (Yang Yi)[ 3 ] ; Li XM (Li Xiaomei)[ 4 ]'}])
print(dataset)
数据帧是:

   DATA
0  By:Chen TX (Chen Tianxu)[ 1 ] ; Tribbitt MA (Tribbitt Mark A.)[ 2 ] ; Yang Y (Yang Yi)[ 3 ] ; Li XM (Li Xiaomei)[ 4 ]
然后,使用带有
lambda
函数的
regular expression
,提取名称并将其保存到名为
names
的不同列中:

# regular expression from: https://stackoverflow.com/a/31343831/5916727
dataset['names'] = dataset['DATA'].apply(lambda x: re.findall('\((.*?)\)',x))
print(dataset['names'])
名称
列的输出为:

0    [Chen Tianxu, Tribbitt Mark A., Yang Yi, Li Xiaomei]

@文卡泰什先生太棒了!如果你愿意,你可以接受这个答案<编码>快乐编码。但是如何删除[]??你能帮我吗。尝试了替换函数,但无效。您的意思是希望
陈天旭、Tribbitt Mark A、杨毅、李小梅
作为单个字符串,因为现在它是用
分隔的字符串列表,