首页 > 解决方案 > 获取“ AttributeError:'float'对象没有属性'lower'”

问题描述

我有一个用户评论和评分数据集。我正在预处理此数据集,但出现如下错误。我该如何解决?

    def DataCleaning(metin):
     numbers = "0123456789"
     lower_case=metin.lower()
     punct_removed = [char for char in lower_case if char not in string.punctuation]
     punct_removed=[char for char in punct_removed if char not in numbers]
     punct_removed_join=''.join(punct_removed)
     punct_removed_join_clean = [word for word in punct_removed_join.split() if word not in 
     stopwords.words('english')]
     return punct_removed_join_clean


otel_verileri["reviews.text"] = otel_verileri["reviews.text"].apply(DataCleaning)
otel_verileri["reviews.text"].tolist()


OUTPUT:
AttributeError                            Traceback (most recent call last)
<ipython-input-56-a80b269d8bbe> in <module>()
      1 
----> 2 otel_verileri["reviews.text"] = otel_verileri["reviews.text"].apply(DataCleaning)
      3 otel_verileri["reviews.text"].tolist()

1 frames
pandas/_libs/lib.pyx in pandas._libs.lib.map_infer()

<ipython-input-48-748ef67e84ac> in DataCleaning(metin)
      1 def DataCleaning(metin):
      2  numbers = "0123456789"
----> 3  lower_case=metin.lower()
      4  punct_removed = [char for char in lower_case if char not in string.punctuation]
      5  punct_removed=[char for char in punct_removed if char not in numbers]

AttributeError: 'float' object has no attribute 'lower'

标签: nlptokenizedata-cleaningsentiment-analysispreprocessor

解决方案


我猜你使用的是 pandas 库。我不知道您是否正在阅读 excel 文件,但我会假设它。

Pandas 似乎喜欢自己推断类型。您可以抑制它并要求特定列仅str使用此:

otel_verileri = pd.read_excel(file_name, converters={'reviews.text' : str})

来源:关于 SO 的另一个答案


推荐阅读