【发布时间】:2021-04-25 10:36:57
【问题描述】:
我有一个数据框 A,其中包含 docid(文档 ID)、title(文章标题)、lineid(行 ID,也就是段落的位置)、文本和 tokencount(包括空格的字数):
docid title lineid text tokencount
0 0 A 0 shopping and orders have become more com... 66
1 0 A 1 people wrote to the postal service online... 67
2 0 A 2 text updates really from the U.S. Postal... 43
...
我想创建一个基于 A 的新数据框,包括 title、lineid、count 和 query。
query 是包含一个或多个单词的文本字符串,例如“数据分析”、“短信”或“购物和订单”。
count是query的每个单词的计数。
新的数据框应该如下所示:
title lemma count lineid
A "data" 0 0
A "data" 1 1
A "data" 4 2
A "shop" 2 0
A "shop" 1 1
A "shop" 2 2
B "data" 4 0
B "data" 0 1
B "data" 2 2
B "shop" 9 0
B "shop" 3 1
B "shop" 1 2
...
如何制作一个函数来生成这个新的数据框?
我从 A 中创建了一个新的数据框 df,其中有一列 count。
df = A[['title','lineid']]
df['count'] = 0
df.set_index(['title','lineid'], inplace=True)
另外,我创建了一个函数来计算查询词数。
from collections import Counter
def occurrence_counter(target_string, query):
data = dict(Counter(target_string.split()))
count = 0
for key in query:
if key in data:
count += data[key]
return count
但是,我怎样才能同时使用它们来生成一个新数据框的函数呢?
【问题讨论】:
标签: python pandas dataframe nltk