如何从括号内的字符串中提取字符?

2024-05-16 10:33:44 发布

您现在位置:Python中文网/ 问答频道 /正文

数据帧图片:

我有一个列名为contracting,另一个列名为contractor。你知道吗

例如,我需要将列contractor分为两个新列:一个列包含括号内的会计编号,另一个列包含其余所有的(描述)。你知道吗

示例:

Contractor: Meo(504615947)

我需要它变成:

Contractor_Name: Meo and Contractor_Number:504615947

我试着这么做:

proc_2013[['contractor_description', 'contractor_NIF']]= pd.DataFrame(proc_2013['contractor'].str.split(('('),1).tolist())

proc2013['contractor_NIF'] = proc2013.contractor_NIF.str.extract('(\d+)')  

问题1:

我也可以在括号内有一个名称描述,后跟我试图提取的数字。你知道吗

问题2:

有时,如果承包商来自一个外国,它在财政编号的开头有一个字母(不仅仅是我最初假设的数字,使用我的第二行代码)。你知道吗

所有财政数字都有9位数。你知道吗


Tags: 数据示例图片数字proc编号括号nif
2条回答

您可以将\d更改为\w,例如:

proc2013['contractor_NIF'] = proc2013.contractor_NIF.str.extract('\((\w+)\)')  

据我所知你的问题,这是一个可能的解决办法

df['contractor_name']=list(map(lambda x : x.split('(')[0],df['con']))
df['contractor_number']=list(map(lambda x : x.split('(')[-1][-10:-1],df['contractor']))

希望这有帮助。你知道吗

相关问题 更多 >