我刚接触熊猫,现在正在卡格尔学习
下面是一个练习,要求在description
列中查找两个单词出现的次数
我从StackOverflow中找到了第一条语句,但第二条是正确答案。这种不同结果的原因是什么
tropical = reviews.description.str.count("tropical").sum()
fruity = reviews.description.str.count("fruity").sum()
descriptor_counts = pd.Series([tropical,fruity])
`
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]
更新!原来的问题是: 创建一个序列描述符,计算这两个单词在数据集中的“描述”列中出现的次数
第一个较小,因为它只获取为
'tropical'
或'fruity'
的值因此:
但是第二个是获取包含的
'tropical'
或'fruity'
的值,因此上面:它确实:
这里有一个例子
第一个代码计算热带为5,水果为4。它计算同一描述中单词的重复次数。 因此,在本例中,结果将是
[5,4]
第二个代码计数为4,而水果为3。它统计每个描述中单词的存在(
if tropical in description
)。一旦你找到了它,不管描述中还有多少,它都算作一。 因此,结果将是[4,3]
所以,我觉得这个问题是错误的。如果问题是关于这两个单词出现的次数,在本例中
[5,4]
应该是正确的(在您的案例中[3703,9259]
)。如果问题询问每个单词出现了多少描述,那么您使用if word in description
计算描述。所以,再检查一次这个问题最近我遇到了同样的问题,这将是我的解决方案,不使用“lambda表达式”
相关问题 更多 >
编程相关推荐