1:以下代码是实现解决如何对高频次出新的文字进行统计,并输出到桌面生成count.txt文本,该文本没有创建有则覆盖。
- 注意①:需要改动的地方df = pd.read_excel(“C:\Users\Desktop\统计.xlsx”),把括号里的路径改成自己的表格存在路径。
- 注意②:代码中的“问题描述”,是我要读取的列名。根据自己需要改动名称,也可以把自己要读取的列直接修改成“问题描述”,那么就不需要做改动了。
- 注意③:with open(“C:\Users\Desktop\count.txt”, “w”, encoding=“utf-8”) as f:
for word, count in sorted_word_counts:
f.write(f"{word}: {count}\n")
加粗部分要改成自己的桌面路径或自己指定路径,运行后就能看到输出高频次的count.txt文本了。有用的话记得点赞支持!
import pandas as pd
import re
import jieba
from jieba import analyse
# 读取Excel文件
df = pd.read_excel("C:\\Users\\Desktop\\统计.xlsx")
# 定义一个函数,用于分词、去停用词和数字
def process_text(text):
# 分词
seg_list = jieba.cut(text, cut_all=False)
# 去停用词和数字
filtered_words = [word for word in seg_list if not word.isdigit() and word not in ["的", "了", ",", "(", ")"]]
return filtered_words
# 调用函数处理“问题描述”列中的所有文本
df['问题描述'] = df['问题描述'].apply(process_text)
# 使用Counter统计每个单词出现的频率并排序
from collections import Counter
word_list = df['问题描述'].sum() # 这里使用sum()可能不是最佳方法,因为它会尝试将列表元素相加
# 为了正确统计,我们需要先将所有单词平铺开来
flat_words = [word for sublist in df['问题描述'].tolist() for word in sublist]
word_counts = Counter(flat_words)
sorted_word_counts = sorted(word_counts.items(), key=lambda x: x[1], reverse=True)
# 输出排序后的结果到“count.txt”
with open("C:\\Users\\Desktop\\count.txt", "w", encoding="utf-8") as f:
for word, count in sorted_word_counts:
f.write(f"{word}: {count}\n")