Применить удаление тегов HTML к столбцу Pandas - PullRequest
0 голосов
/ 21 мая 2018

Мне нужно удалить все теги HTML в столбце панд и просто сохранить описание.

Я уже удалил теги для одного столбца, но нужно применить их к другим - это то, что я сделал и сделал;

Ввод:

df.description[1]

Вывод:

'<p>Das Ziel der <a href="http://swa-muc.de">Software Architektur München Gruppe</a> ist es, Menschen, die sich mit Software-Architektur auseinandersetzen wollen, in und um München regelmäßig zusammenzubringen, und einen persönlichen Erfahrungsaustausch zu etablieren. Dazu dienen neben der Meetup-Gruppe insbesondere der persönliche Erfahrungsaustausch, organisiert in informellen Treffen, Diskussion von Erfahrungsberichten und Case Studies bis hin zu Vorträge und Workshops. Diese werden auch über Twitter <a href="https://twitter.com/swamuc">@swamuc</a> und Meetup bekannt gegeben.</p>'

С я сделал;

read = df.description[1]
read_result = re.sub('<[^<]+?>', '', read)
print(read_result)

Вывод:

Das Ziel der Software Architektur München Gruppe ist es, Menschen, die sich mit Software-Architektur auseinandersetzen wollen, in und um München regelmäßig zusammenzubringen, und einen persönlichen Erfahrungsaustausch zu etablieren. Dazu dienen neben der Meetup-Gruppe insbesondere der persönliche Erfahrungsaustausch, organisiert in informellen Treffen, Diskussion von Erfahrungsberichten und Case Studies bis hin zu Vorträge und Workshops. Diese werden auch über Twitter @swamuc und Meetup bekannt gegeben.

Это все хорошо, но мне нужно сделать это для всего столбца df.description Панд.

Вот что я пробовал:

 new_read = df.description[0:10148]
 new_read_result = re.sub('<[^<]+?>', '', new_read)
 print(new_read_result) 

Однако это не работает и возвращает;

TypeError: ожидаемая строка или байтовоподобный объект

Это еще один метод, который я пытаюсь применить:

df.description.apply(re.sub('<[^<]+?>', '', new_read))

Но это не так 'тоже не работает.

Как я могу применить его ко всей колонне панд?

Ответы [ 2 ]

0 голосов
/ 21 мая 2018

сделать следующее

def parser(text):
    return re.sub('<[^<]+?>', '', str(text))



result=df.description.apply(parser)

МЕТОД: 2

df.description.apply(lambda x : re.sub('<[^<]+?>', '', str(text)))
0 голосов
/ 21 мая 2018

Использование lambda in apply:

Пример:

import pandas as pd
import re

df = pd.DataFrame({"description": ['<p>Hello</p>', '<p>World</p>']})
print( df.description.apply(lambda x: re.sub('<[^<]+?>', '', x)))

Выход:

0    Hello
1    World
Name: description, dtype: object
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...