python - 将 pandas 中的 Topic-name 和 Description 转换为 Topic-Name、Words 和 Frequency

标签 python pandas nltk

我有一个由主题名称、描述组成的 Pandas 数据框

Original Data

我正在尝试将其转换为主题名称、单词(出现在描述列中)及其频率

Expected Result

我已经试过了,但它只给了我描述的单词和频率,而不是主题名称级别。

import nltk
top_N = 4
a = df['ParsedText'].str.cat(sep=' ')
nltk.download('punkt')
words = nltk.tokenize.word_tokenize(a)
word_dist = nltk.FreqDist(words)
rslt = pd.DataFrame(word_dist.most_common(top_N),
                columns=['Word', 'Frequency'])
print(rslt)       
  • 解析的文本是描述列

最佳答案

你可以试试:

(df.assign(Description=df.Description.str.split()).explode()
   .groupby('TopicName')['Description'].value_counts()
   .reset_index(name='Frequency')
)

关于python - 将 pandas 中的 Topic-name 和 Description 转换为 Topic-Name、Words 和 Frequency,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66496509/

相关文章:

python - urllib.urlretrieve 的代理设置

python - 如何根据 pandas 中其他列的值计算新列 - python

python - 在 pandas DataFrame 中查找前 3 天的最低值

nltk pos_tag 用法

python - 两个不同数据帧(dfs)中单词之间的字符串文字匹配并生成一个新的数据帧

python - django 2 中的迁移错误;属性错误 : 'str' object has no attribute 'decode'

java - 用于故障排除的指标模式分析

python - 使用装饰器将 Python 类装饰为类

python - 使用 pandas 填充数据框中的合并单元格

python - 在 Python 中从 API 对象中提取数据