При удалении html-текста из столбца, объект типа 'float' не имеет ошибки len () - PullRequest
1 голос
/ 23 мая 2019

Я использую набор данных Amazon для анализа настроений.Содержимое набора данных:
https://i.stack.imgur.com/qcKZp.png

. Набор данных находится на: https://www.kaggle.com/PromptCloudHQ/amazon-reviews-unlocked-mobile-phones

Я пытаюсь удалить html из столбца Review.
Это то, что я делаю.Примечание: набор данных назначен на df.

df_removedNoise = []
def removingHTML(text):
    soup = BeautifulSoup(text, 'lxml').get_text()
    return soup

def removingNoise(text):
    html_removed = removingHTML(text)
    return html_removed

for i in df["Reviews"]:
    text = removingNoise(i)
    df_removedNoise.append(text)

Несмотря на то, что в столбце Обзоры есть объект в качестве типа данных, я все еще получаю сообщение об ошибке типа.

TypeError                                 Traceback (most recent call last)
<ipython-input-83-3591f5d7a54f> in <module>
      9 
     10 for i in df["Reviews"]:
---> 11     df_removedNoise.append(removingNoise(i))

<ipython-input-83-3591f5d7a54f> in removingNoise(text)
      5 
      6 def removingNoise(text):
----> 7     html_removed = removingHTML(text)
      8     return html_removed
      9 

<ipython-input-83-3591f5d7a54f> in removingHTML(text)
      1 df_removedNoise = []
      2 def removingHTML(text):
----> 3     soup = BeautifulSoup(text, 'lxml').get_text()
      4     return soup
      5 

~/anaconda3/lib/python3.7/site-packages/bs4/__init__.py in __init__(self, markup, features, builder, parse_only, from_encoding, exclude_encodings, **kwargs)
    244         if hasattr(markup, 'read'):        # It's a file-type object.
    245             markup = markup.read()
--> 246         elif len(markup) <= 256 and (
    247                 (isinstance(markup, bytes) and not b'<' in markup)
    248                 or (isinstance(markup, str) and not '<' in markup)

TypeError: object of type 'float' has no len()

Любая помощь будет оценена!

1 Ответ

0 голосов
/ 23 мая 2019

Проверьте для NaN с помощью df[df['Reviews'].isnull()], если вы найдете попытку dropna сначала

...