python - 如何获取数据集中某些单词的值计数
问题描述
我想在评论列下的数据框中找到某些关键术语的值计数。它是关于客户评论的数据集,我正在寻找某些单词的值计数。我想要价值计数的词是这些词:
keywords= ["big","hat",'dress',"fabric","color"]
下面我已经做了一个函数,它会说明每一行是否有我的一个关键术语。但是现在我需要找到“关键字”的值计数,我有点卡住了,有人可以帮忙吗?
如何查找下面列出的关键字的值计数?
keywords= ["big","hat",'dress',"fabric","color"]
def keyword(value):
strings = value.split()
if any(word in strings for word in keywords):
return 1
else:
return 0
shopbop['keyword_solution']=shopbop['review_mo'].apply(keyword)
这只会使新列显示该词是否在他们的范围内。
奖金......如果有一种方法可以制作如下所示的列,但也可以在新列的行中显示新创建的列中该行中出现的每个关键字,那也将非常酷
def keyword(value):
strings = value.split()
if any(word in strings for word in keywords):
return 1
else:
return 0
shopbop['keyword_solution']=shopbop['review_mo'].apply(keyword)
解决方案
如果您向我们提供了您所指的 DataFrame 的示例,那将会很有帮助,以免误解您的方法,尽管如此,我将尝试使用如下组成的 DataFrame:
import pandas as pd
data={'review_mo':['First hat big hat line with a red color dress',
'Second line color color color and fabric hat',
'Third line without any of those keywords but fabric ',
'Fourth line fabric of big big big hat fabric',
'big big hat hat dress dress fabric fabric color color']}
values=[0,0,0,0,0]
keywords= ["big","hat",'dress',"fabric","color"]
dictionary = dict(zip(keywords, values))
data.update(dictionary)
shopbop=pd.DataFrame(data,columns=['review_mo']+keywords)
数据框和关键字列表必须作为函数参数传递:
def keyword(value,shopbop,keywords):
for key in keywords:
shopbop.loc[shopbop['review_mo']==value,key]=len([x for x in value.split() if x==key])
此块给出了您要求(或排序)的奖励以及在每个字符串中找到的关键术语的总值计数:
shopbop['review_mo'].apply(lambda x: keyword(x,shopbop,keywords))
shopbop['keyword_solution']=shopbop[keywords].sum(axis=1)
显示简历:
shopbop.loc[:, shopbop.columns != 'review_mo']
big hat dress fabric color keyword_solution
0 1 2 1 0 1 5
1 0 1 0 1 3 5
2 0 0 0 1 0 1
3 3 1 0 2 0 6
4 2 2 2 2 2 10
推荐阅读
- java - 程序 6 of 49 前 6 个不包含重复,第 7 个数字必须不是第 6 个中的一个
- node.js - 如何使用 nodeJS 将 DynamicsCRM 与 botframework v4 集成?
- python - 两个实例引用同一个对象问题
- ios - 如何在函数中返回 CLLocationManager didUpdateLocations 的值?
- firebase - Firebase跨平台推送通知插件复制MainActivity
- mysql - 在 docker 容器 laravel mysql 中运行迁移文件
- java - 正则表达式读取以下格式化字符串模式
- javascript - 我在将对象添加到数组时遇到问题
- python - 重复的级别名称:“日期”,分配给级别 1,已用于级别 0
- ios - build_iphone.sh:第 52 行:/Users/.../pocketsphinx-master/configure:没有这样的文件或目录