import pandas as pd
import jieba
from collections import Counter
# 读取 Excel 文件
df = pd.read_excel('your_excel_file.xlsx')
# 定义函数用于分词和统计词频
def word_freq(content):
# 对文章内容进行分词
words = jieba.cut(content)
# 统计词频
return Counter(words)
# 创建新的数据框
new_df = pd.DataFrame(columns=['主题', '词语', '词频'])
# 遍历每个主题
for topic in df['type'].unique():
# 筛选符合条件的行,并将文章内容合并为一个字符串
temp_df = df[df['type']==topic]
content = ''.join(temp_df['art_content'].tolist())
# 进行分词和统计词频
freq = word_freq(content)
# 将统计结果写入新数据框
for word, count in freq.items():
new_df = new_df.append({
'主题': topic,
'词语': word,
'词频': count
}, ignore_index=True)
# 将新数据框存储到 Excel 文件中
new_df.to_excel('new_excel_file.xlsx', index=False)
定义了一个函数 word_freq()
用于对文章内容进行分词和统计词频。然后,我们遍历每个主题,筛选符合条件的行,并将文章内容合并为一个字符串。接着,将文章内容传递给 word_freq()
函数进行分词和统计词频,并将统计结果写入新数据框。最后,将新数据框存储到 Excel 文件中。