首页 > 解决方案 > 这两种计算文本列中两个单词出现次数的方法有什么区别?

问题描述

我是 pandas 的新手,我现在正在 Kaggle 上学习它。

这是一个练习,要求查找列中两个单词的出现次数description

我从 StackOverflow 中找到了第一条语句,但第二条是正确答案。造成这种不同结果的原因是什么?

1. 从 StackOverflow 中找到

tropical = reviews.description.str.count("tropical").sum()
fruity = reviews.description.str.count("fruity").sum()
descriptor_counts = pd.Series([tropical,fruity])

`

2.正确答案

tropical = reviews.description.map(lambda desc: 'tropical' in desc).sum()
fruity = reviews.description.map(lambda desc: 'fruity' in desc).sum()
descriptor_counts = pd.Series([tropical, fruity],index=['tropical','fruity'])

第一个结果是[3703, 9259] 第二个结果是[3607, 9090]

更新!最初的问题是:创建一个系列descriptor_counts,计算这两个单词中的每一个出现在数据集的描述列中的次数。

标签: pythonpandas

解决方案


第一个较少,因为它只获取or 值。'tropical''fruity'

所以:

>>> s='a'
>>> s=='a'
True

但是第二个是获取包含 'tropical'or的值'fruity',所以上面是:

>>> s='ab'
>>> s=='a'
False

所以它:

>>> s='ab'
>>> 'a' in s
True

推荐阅读