1.库的调用
import pandas as pd
import jieba
import re
2.读取excel的表
# df = pd.read_excel(**r+Excel路径**<直接在文件处复制路径>)
df = pd.read_excel(r"C:\Users\dell\Desktop\oc-ML\机器学习\week9\附件1\景区评论.xlsx")
df
3.按景区民称排序 -----用df.sort_values(' ',ascending=True)
data_1 = df.sort_values('景区名称',ascending = True)
data_1
4.把第0行的评论内容打出来列表的形式
data_1['评论内容'][0]
5.把整个评论内容打出来循环的
keywords_n = {}
word = ""
words = ""
for i in range(len(data_1)): #在data_1的长度之内 i:是循环第几行
if i == 0: #打印第0行的评论内容
word = data_1['评论内容'][i]
if i>0 and data_1['景区名称'][i] == data_2['景区名称'][i-1]:
word = word + data_1['评论内容'][i] #在景区名称相同情况下,第0行+第1行,后面的同理,像是计算1+2+3+4+5·····+100 ——————这是同一景区所有评论内容
if i>0 and data_1['景区名称'][i] != data_2['景区名称'][i-1]:
key = data_1['景区名称'][i-1] #这是将不同景区区分开
t = re.findall(r"[\u4E00-\u9FA5]",word) #用正则表达式(re.findall())
for j in t:
words = words + j
keywords_n[key] = keywords_n.get(key,words) #相应景区对应的评论内容
word = data_1['评论内容'][i]
words =""
if i == len(data_1)-1: #这是最后一行的数据
key = data_1['景区名称'][i]
t = re.findall(r"[\u4E00-\u9FA5]",word)
for j in t:
words = words + j
keywords_n[key] = keywords_n.get(key,words)
6.打印出所有景区
keywords_n.keys()
7.把所有景区的所有评论内容都打印出来
keywords_n
8.取热度前二十的词
for key in keywords_n.keys():
num ={}
words =jieba.lcut(keywords_n[key],cut_all=False) #
for w in words:
if len(w)==1:
continue
else:
num[w] = num.get(w,0)+1
nnn=[]
for s in num.keys():
nnn.append(num[s]) #对热度词进行出栈操作
df = pd.DataFrame() #列的形式打印出来
df['评论热词'] =num.keys()
df['热度']=nnn
df1 = df.sort_values(['热度'],ascending = 0).head(20) #.head(20)前20
9.当前位置打出df1热度排行
df1
10.把所得数据导入到CSV文件
df1.to_csv(r"C:\Users\dell\Desktop\oc-ML\机器学习\week10\评论热词{}.csv".format(key),index = False)
该博客通过Python库pandas和jieba对景区评论数据进行处理,首先读取Excel表格并按景区名称排序,然后整合各景区的评论内容。接着,提取每个景区的评论关键词,并统计热度,最后输出热度前20的评论热词,并将结果保存为CSV文件。整个过程涉及数据读取、文本处理、关键词提取和文件导出等步骤。

764

被折叠的 条评论
为什么被折叠?



