Страницы

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

среда, 22 января 2020 г.

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

#python #python_3x #pandas #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 в такой форме данные?


Ответы

Ответ 1



Чтобы заменить все невложенные теги на пробелы в столбце 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 – обязательно. Обязанности: продвижение бренда компании, маркетинговые исследования, вывод собственных бре ндов на рынок, имиджевая реклама. Условия: Офис в центре. Возможны командировки. '

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

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