我只需要提取pandas数据框中括号内的内容。我尝试使用str.exratct()但它不起作用。我需要提取帮助
DATA :( IS IN DATA FRAME,这是一行的样本数据)
作者:陈德克斯(陈天旭)[1]; Tribbitt MA(Tribbitt Mark A。)[2];杨Y(杨毅)[3];李晓梅(李小梅)[4]答案 0 :(得分:1)
您可以使用from bson.objectid import ObjectId
a = users.find_one({'_id': ObjectId(_id)})
:
regular expression
Dataframe是:
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 ]
函数的regular expression
,以便您提取名称并将其保存到名为lambda
的不同列:
names
# regular expression from: https://stackoverflow.com/a/31343831/5916727
dataset['names'] = dataset['DATA'].apply(lambda x: re.findall('\((.*?)\)',x))
print(dataset['names'])
列的输出为:
names