基于Python+Echarts+Pandas 搭建一套图书分析大屏展示系统(附源码)
创始人
2024-04-28 22:43:36

今天给大家分享的是基于 Flask、Echarts、Pandas 等实现的图书分析大屏展示系统。

项目亮点

  • 采用 pandas、numpy 进行数据分析

  • 基于 snownlp、jieba 进行情感分析

  • 后端接口选用 RESTful 风格,构建 Swagger 文档

  • 基于 Flask、Echarts 构建 Web 服务,采取前后端分离的开发模式

  • 结合 redis 提高访问速度

  • 采用 docker-compose 构建项目

  • 使用 gitee、github 进行代码版本管理

  • 前端采用 Promise、async、await 进行异步请求

在线演示地址

  • 主页:https://python.sinwer.cn/

  • 数据接口:https://python.sinwer.cn/v1/

效果截图

图片太大,不清晰。

项目本地启动

docker-compose up   

项目本地访问

localhost:8080   

源码

在这里插入图片描述

本文由技术群粉丝投稿分享,项目源码、数据、技术交流提升,均可加交流群获取,群友已超过2000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友

方式①、添加微信号:dkl88191,备注:来自CSDN +研究方向
方式②、微信搜索公众号:Python学习与数据挖掘,后台回复:图书分析大屏

部分代码展示
wsgi.py

import sysWIN = sys.platform.startswith('win')
from gevent import monkeyif WIN:monkey.patch_all(contextvars=False)
else:monkey.patch_all()
# gc.disable()
# gc.set_debug(gc.DEBUG_LEAK)
import osfrom dotenv import load_dotenv, find_dotenv
from werkzeug.middleware.proxy_fix import ProxyFixfrom BookAnalysis import create_appload_dotenv(find_dotenv())app = create_app(os.environ.get('FLASK_ENV', 'production'))
app.wsgi_app = ProxyFix(app.wsgi_app)
#!/usr/bin/python3
# -*- coding: utf-8 -*- 
# @Software: PyCharm
import jieba
import pandas as pdfrom BookAnalysis.analysis.base import Baseclass Analysis(Base):def __init__(self, filename=None):if filename is None:filename = 'bookComment.csv'super().__init__(filename)def getData(self):# 选取评论数量最多的图书url = self.df['url'].value_counts().idxmax()df: pd.DataFrame = self.df.loc[self.df['url'] == url]# print(df.head())# print(df.shape)# print(df.columns)comments = df['comment'].astype(str).tolist()counts = {}# 统计评论for comment in comments:words = jieba.cut(comment, use_paddle=True)for word in words:if len(word) == 1:continueelse:counts[word] = counts.get(word, 0) + 1# _ans = []# for key, value in counts.items():#     _ans.append({#         "name": key,#         "value": value#     })# print(counts)# print(_ans)# 按照 value 进行排序 dictcounts = sorted(counts.items(), key=lambda item: item[1], reverse=True)_ans = []for key, value in counts:# 获取前 200 个分词,减少网络传输压力if len(_ans) > 200:break_ans.append({"name": key,"value": value})return _ansif __name__ == '__main__':print(Analysis().getData())

相关内容

热门资讯

多点发力全域开花 无锡低空经... 中经记者 张家振 石英婧 无锡报道“宝莲灯”像莲花瓣一样缓缓打开,无人机腾空而起,飞向蓝天;随着无人...
永州网友脐橙回礼已送达江苏   三湘都市报1月9日讯 “到了,永州的脐橙到了!”1月9日中午,地处江苏苏州市中心香山实验小学附近...
献血攒的“福利”能帮到更多亲人...   用血报销新政策来啦!1月9日,记者从长沙血液中心了解到,根据《湖南省临床用血费用直接减免操作细则...
中山大洋电机股份有限公司第七届... 证券代码:002249 证券简称: 大洋电机 公告编号: 2026-002中山大洋电机股份有限公司第...
2026,大美中国持续焕新! 【美丽中国大写意】2026年不一般!“十五五”规划开局之年,美丽中国建设有不少新期待:  今年,我国...