Я не уверен, как вы генерируете свои входные данные, и я также не уверен, что данные согласованы в большем наборе.Этот ответ основан на текущей структуре набора данных без изменений.Вы должны быть в состоянии добавить окончательный вывод в фрейм данных.Если у вас есть проблемы с этим, я добавлю эту часть тоже.
from pprint import pprint
input_string = 'Bob Smith, São Paulo State University/Department of Production Engineering, Brazil James Smith, São Paulo State University/Department of Production Engineering, Brazil Bob James, São Paulo State University/Department of Production Engineering, Brazil'
def split_string_keep_delimiter(string_to_split, delimiter):
result_list = []
tokens = string_to_split.split(delimiter)
for i in range(len(tokens) - 1):
result_list.append(tokens[i] + delimiter)
result_list.append(tokens[len(tokens)-1])
return result_list
# This is going to split your input text on the word Brazil
# the output is a list
split_input = split_string_keep_delimiter(input_string, "Brazil")
pprint(split_input)
# output
['Bob Smith, São Paulo State University/Department of Production '
'Engineering,Brazil',
'James Smith, São Paulo State University/Department of Production '
'Engineering,Brazil',
'Bob James, São Paulo State University/Department of Production '
'Engineering,Brazil',
'']
# This is going to split the previous list at the commas (,).
# the output is a nested list
results = [item.split(',') for item in split_input if len(item) > 0]
print (results)
# output
[['Bob Smith', ' São Paulo State University/Department of Production Engineering', ' Brazil'], [' James Smith', ' São Paulo State University/Department of Production Engineering', ' Brazil'], [' Bob James', ' São Paulo State University/Department of Production Engineering', ' Brazil']]
# This loops through the results and extracts 4 items from each list.
for item in results:
name = item[0].strip()
university_name = item[1].strip().split('/')[0]
department = item[1].strip().split('/')[1]
country = item[2].strip()
print (f'{name} - {university_name} - {department} - {country}')
# output
Bob Smith - São Paulo State University - Department of Production Engineering - Brazil
James Smith - São Paulo State University - Department of Production Engineering - Brazil
Bob James - São Paulo State University - Department of Production Engineering - Brazil