В папке 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:
<class 'pandas.core.frame.DataFrame'> RangeIndex: 200 entries, 0 to 199 Data columns (total 1 columns): 0 200 non-null object dtypes: object(1) memory usage: 1.6+ KB
Удаление тегов:
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
Пример строчки из файла:
<p>Приглашается Бренд-менеджер в известную компанию (сеть магазинов бытовой, видео, аудио-техники). </p><p>Требования:<br />Мужчина/женщина, <br />25-40 лет, <br />образование высшее (желательно маркетинг), <br />с опытом работы от 3 лет на позиции бренд-менеджера (в компании, занимающейся бытовой техникой или в очень крупной компании). <br />Обязательно хороший уровень английского (устный и письменный), <br />сильные навыки управления проектами. <br />Сильные презентационные навыки. <br />ПК: MS Office, Power Point – обязательно. </p><p>Обязанности: <br />продвижение бренда компании, <br />маркетинговые исследования, <br />вывод собственных брендов на рынок, <br />имиджевая реклама. </p><p>Условия:<br />Офис в центре. <br />Возможны командировки. </p>
Преобразование в текст есть, получается не преобразует. Как правильно? И примет ли 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 – обязательно. Обязанности: продвижение бренда компании, маркетинговые исследования, вывод собственных бре ндов на рынок, имиджевая реклама. Условия: Офис в центре. Возможны командировки. '