Изображение кадра данных:

У меня есть один столбец с именем контрактинг, а другой - контрактор внутри DataFrame.
Мне нужно разделить, например, подрядчик столбцов, на 2 новых столбца: один столбец, содержащий фискальный номер, заключенный в скобки, и другой столбец, содержащий все остальные (описание).
Пример:
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 цифр.