计算文本列中两个单词出现次数的两种方法

2024-09-25 00:35:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚接触熊猫,现在我正在卡格尔学习。你知道吗

下面是一个练习,询问在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]

更新!最初的问题是: 创建一个序列描述符,计算这两个词在数据集中的description列中出现的次数。你知道吗


Tags: 答案countdescriptionstackoverflow次数descseriespd
2条回答

下面是一个例子

enter image description here

第一个代码是5,水果是4。它计算同一描述中单词的重复次数。 因此,在本例中,结果将是[5,4]。你知道吗

第二个代码是4,水果是3。它统计每个描述中单词的出现(if tropical in description)。一旦你找到了它,它就算作一个了,不管这个描述里还有多少。 结果就是[4,3]。你知道吗

所以,我觉得这个问题是错误的。如果问题是关于这两个单词出现的次数,那么在这个例子中[5,4]应该是正确的(在您的例子中[3703,9259])。如果问题询问每个单词出现了多少描述,那么您可以使用if word in description来计算描述。所以,再检查一遍这个问题。你知道吗

第一个较小,因为它只得到'tropical''fruity'的值。你知道吗

所以:

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

但是第二个是得到包含'tropical''fruity'的值,所以上面:

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

所以它是这样的:

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

相关问题 更多 >