我有一个 pandas DataFrame,其中有一个名为“spam['v2']”的系列,其中每行包含一个句子。我想创建一个新系列来计算每行的字数,其中输出是一个字典,其中单词作为键,其相应的计数作为值。
例如,如果我的原始系列看起来像这样:
我想创建一个新系列,其中行具有以下字典:
我尝试了这个并成功完成了任务,但它是使用常规Python完成的:
对于那些想要查看完整工作文件(One Drive 链接)的人:https://1drv.ms/f/s!AsQPI-pwVwq5v03-11e7R3Rme-2l?e=9LMtgd
import pandas as pd
spam = pd.read_csv('spam.csv')
def freq(text):
words = []
words = text.split()
wfreq=[words.count(w) for w in words]
return dict(zip(words,wfreq))
count = spam['v2'].apply(freq)
count = pd.Series(count)
我不确定如何使用 pandas 和系列方法有效地解决这个问题,而不使用常规的 python。 有人可以指导我如何使用 pandas 实现这一目标吗?
谢谢!
您尝试过使用
从收藏导入计数器
import pandas as pd
spam = pd.read_csv('spam.csv')
def word_count(text):
words = text.split()
word_count = {}
for word in words:
if word in word_count:
word_count[word] += 1
else:
word_count[word] = 1
return word_count
spam['word_count'] = spam['v2'].apply(word_count)