【发布时间】:2019-02-12 18:30:56
【问题描述】:
我正在尝试计算来自 pandas DataFrame 的关键字数量:
df = pd.read_csv('amazon_baby.csv')
selected_words = ['awesome', 'great', 'fantastic', 'amazing', 'love', 'horrible', 'bad', 'terrible', 'awful', 'wow', 'hate']
selected_words 必须从系列中计算:df['review']
我试过了
def word_counter(sent):
a={}
for word in selected_words:
a[word] = sent.count(word)
return a
然后
df['totalwords'] = df.review.str.split()
df['word_count'] = df.totalwords.apply(word_counter)
----------------------------------------------------------------------------
----> 1 df['word_count'] = df.totalwords.apply(word_counter)
c:\users\admin\appdata\local\programs\python\python36\lib\site-packages\pandas\core\series.py in apply(self, func, convert_dtype, args, **kwds)
3192 else:
3193 values = self.astype(object).values
-> 3194 mapped = lib.map_infer(values, f, convert=convert_dtype)
3195
3196 if len(mapped) and isinstance(mapped[0], Series):
pandas/_libs/src\inference.pyx in pandas._libs.lib.map_infer()
<ipython-input-51-cd11c5eb1f40> in word_counter(sent)
2 a={}
3 for word in selected_words:
----> 4 a[word] = sent.count(word)
5 return a
AttributeError: 'float' object has no attribute 'count'
有人可以帮忙吗? 我猜这是因为系列中的一些错误值不是字符串。 . .
有些人尝试过提供帮助,但问题是 DataFrame 中的各个 单元格 中有句子。
我需要提取所选单词的计数,最好以字典的形式,并将它们存储在具有相应行的同一 dataFrame 中的新列中。
【问题讨论】:
-
欢迎来到 SO。你能提供一个示例代码吗?
-
发布您的数据框
-
添加了 csv 文件链接。
-
selected_words 必须从一个句子中提取出来。我添加了 csv 文件,虽然它有点大。格式为 df = DataFrame(columns = ['name','review','评分'])。 & df['review'] 有评论,即从中提取 count 的句子,df['word_count'][i] = df["review"][i] 中每个 selected_word 的计数
-
在excel中添加了csv文件的快照
标签: python python-3.x pandas attributeerror