У меня есть большой лист Excel с информацией о разных компаниях в одной ячейке для каждой компании, и моя цель состоит в том, чтобы разделить ее на разные столбцы, следуя шаблонам для извлечения информации из первого столбца. Исходные данные выглядят так:
Моя цель - создать такой фрейм данных:
Я создал следующий код для использования шаблонов Mr., Affiliation :, E-mail: и Mobile, потому что они повторяются в каждой строке одинаковым образом. Однако я не знаю, как использовать функцию findall (), чтобы собрать всю необходимую информацию из каждой строки нужного столбца.
import openpyxl
import re
import sys
import pandas as pd
reload(sys)
sys.setdefaultencoding('utf8')
wb = openpyxl.load_workbook('/Users/ap/info1.xlsx')
ws = wb.get_sheet_by_name('Companies')
w={'Name': [],'Affiliation': [], 'Email':[]}
for row in ws.iter_rows('C{}:C{}'.format(ws.min_row,ws.max_row)):
for cells in row:
a=re.findall(r'Mr.(.*?)Affiliation:',aa, re.DOTALL)
a1="".join(a).replace('\n',' ')
b=re.findall(r'Affiliation:(.*?)E-mail',aa,re.DOTALL)
b1="".join(b).replace('\n',' ')
c=re.findall(r'E-mail(.*?)Mobile',aa,re.DOTALL)
c1="".join(c).replace('\n',' ')
w['Name'].append(q1)
w['Affiliation'].append(r1)
w['Email'].append(s1)
print cell.value
df=pd.DataFrame(data=w)
df.to_excel(r'/Users/ap/info2.xlsx')