python - 如何计算数据框中特定单词的实例?
问题描述
我想计算这些 ngram 出现在充满文章的数据框列 (df.content) 中的次数。我的数据框是这样的:
我的 ngram 列表是这样的:
df_ngrams 中的“值”列显示了特定 ngram 在 df.content 中出现的次数,但我想计算每篇文章
我已经尝试过这个:
ngrams_count = ['u s', 'president trump', 'donald trump', 'united states', 'white house', 'new york', 'hillary clinton', 'fox news', 'donald trumps', 'president donald']
count = 0
articleCount = 0
for i in df.content:
articleCount += 1
for j in ngrams_count:
if j in i:
count = i.find(j)
print ("article ", articleCount, "has ", count, " instances of ngram ", j)
counts = 0
解决方案
试试这个:
df["content"].apply(lambda x: pd.Series({el: x.count(el) for el in ngrams_count})).sum()
样本输出:
>>> lst
['dfo', 'a', 'd0', 'do']
>>> df
idx cnt
0 1 a fero eo dk v,e oe pero c, el
1 2 fdo pr ck ,,w ld. dp dfp
2 3 40fk ldf mdl sdm dfl mfd dfl
3 4 dov övdke dmc kfdoe flgp dofr
4 5 fdk0v do fdok dlw pds
5 6 dfo df0 ld cödp wpl
6 7 fdo d0 dl dfl dflre
7 8 dfo dfp 0er a na bab sb
8 9 fdo 0fd ldm cd. wdld so
9 10 reo dodf fd0fd dlss0 d0dsl sdl s
>>> df["cnt"].apply(lambda x: pd.Series({el: x.count(el) for el in lst})).sum()
dfo 2
a 4
d0 3
do 9
dtype: int64
推荐阅读
- php - Symfony 4迁移实体表单验证使用validation.yaml
- ansible - 使用 Ansible 时格式化字符串事实列表
- angular - GraphQL 角度阿波罗客户端。从缓存中读取抛出错误,但对服务器的相同查询工作正常
- mysql - MySQL COUNT(Value) 在某些日期之间返回错误的计数值
- javascript - JSON parse/stringfy 添加额外数据
- c# - c# Nunit 获取所有忽略的测试计数和名称
- lua - 尝试在 lua 中索引一个 nil 值
- python - 如何在 tensorflow v2 中启用 cuda 统一内存
- php - 用php替换url中的句号
- winapi - 仅列出本地智能卡读卡器