python - 如何获取数据集中某些单词的值计数

标签 python function loops

我想在评论列下的数据框中查找某些关键术语的值计数。它是客户评论的数据集,我正在查找某些单词的值计数。我想要值计数的单词是这些单词:

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])

此 block 提供您要求(或某种程度)的奖金以及每个字符串中找到的关键术语的总值计数:

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

关于python - 如何获取数据集中某些单词的值计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57828814/

相关文章:

python - 读取和写入同一个文本文件

function - 将表名和列名定义为 plpgsql 函数中的参数?

javascript - 使用 JS 函数来使用另一个函数的语法? Node .js

javascript - 编辑文本按钮不起作用

java - while循环忽略try-catch

python - 在 pyqt 中使用复选框

python - 在 .so 文件中使用 C 模块时出现段错误

python - 仅打印字符串的某些行的最pythonic方式是什么?

php - 嵌套 PHP while 循环在显示请求的结果之前返回先前的结果

每个循环的 Javascript