Страницы

Поиск по вопросам

воскресенье, 10 марта 2019 г.

Убрать тэги из текстового столбца DataFrame

В папке all_file лежит 200 текстовых файлов, где каждый состоит из 1 строчки текста содержащего html-теги.
Код создания data frame:
dir_input='/data/home/maksim.ilin/data/all_file/*.txt' files=glob.glob(dir_input) df=pd.concat([pd.read_csv(f,header=None,sep='\t') for f in files],ignore_index=True)
В результате соединения получается одновекторный data frame info:
RangeIndex: 200 entries, 0 to 199 Data columns (total 1 columns): 0 200 non-null object dtypes: object(1) memory usage: 1.6+ KB
Data frame выглядит вот так :
Удаление тегов:
df[0]=df[0].astype(str) texts=[] for a in df.iterrows(): texts.append(BeautifulSoup(a['description']).text)
В итоге ошибка:
---> 22 texts.append(BeautifulSoup(a['description']).text) TypeError: tuple indices must be integers or slices, not str
Пример строчки из файла:

Приглашается Бренд-менеджер в известную компанию (сеть магазинов бытовой, видео, аудио-техники).

Требования:
Мужчина/женщина,
25-40 лет,
образование высшее (желательно маркетинг),
с опытом работы от 3 лет на позиции бренд-менеджера (в компании, занимающейся бытовой техникой или в очень крупной компании).
Обязательно хороший уровень английского (устный и письменный),
сильные навыки управления проектами.
Сильные презентационные навыки.
ПК: MS Office, Power Point – обязательно.

Обязанности:
продвижение бренда компании,
маркетинговые исследования,
вывод собственных брендов на рынок,
имиджевая реклама.

Условия:
Офис в центре.
Возможны командировки.


Преобразование в текст есть, получается не преобразует. Как правильно? И примет ли BeautifulSoup в такой форме данные?


Ответ

Чтобы заменить все невложенные теги на пробелы в столбце 0
df[0] = df[0].str.replace(r'\<[^\>]*\>', ' ')
Результат для приведенной в качестве примера строки:
In [87]: df[0].str.replace(r'\<[^\>]*\>', ' ').values[0] Out[87]: ' Приглашается Бренд-менеджер в известную компанию (сеть магазинов бытовой, видео, аудио-техники). Требования: Мужчина/женщина, 25-40 лет , образование высшее (желательно маркетинг), с опытом работы от 3 лет на позиции бренд-менеджера (в компании, занимающейся бытовой техникой или в о чень крупной компании). Обязательно хороший уровень английского (устный и письменный), сильные навыки управления проектами. Сильные презентационны е навыки. ПК: MS Office, Power Point – обязательно. Обязанности: продвижение бренда компании, маркетинговые исследования, вывод собственных бре ндов на рынок, имиджевая реклама. Условия: Офис в центре. Возможны командировки. '

Комментариев нет:

Отправить комментарий