毕业设计非要我这个前端写数据分析?写了还不合格,哭了

前言

我在大三时候去了一家互联网公司做 前端实习生。现在大四了。

本着对 前端甚至服务端 无比感兴趣的我,硬是被要求毕业设计必须要有 数据分析(python,不限环境 如:Flask、Django、spark都可以

相关文章

自动化部署脚本-bash
Mocha node.js的单元测试
前端也要掌握的jwt登录校验

好好好,这样玩? 那可别怪我 chat-gpt 的强大了

注:想了解 Python 可以跳过设计思路看 大为震惊


先贴地址

交作业啦-前端:->这里是前端代码地址
交作业啦-后端&接口文档:->这里有更详细的文档介绍

也累计了500+次提交啦,感兴趣可以关注一下~
项目地址:

  1. ->接口文档
  2. ->交作业啦

设计思路

名称:交作业啦H5

软件: 帮可怜的学委收一下作业

  1. 同学交作业
  2. 总裁收作业
  3. 老师发布作业

整体从这三项大方向上延伸,如:各个方向的数据分析(老师和学生都有)、反馈系统、上传用户、权限配置、作业统计等...

技术选型

  • 前端:Vue3 、Vite4、TS、JSX、vueRouter、axios、Echarts、sass
  • 后端:Node.js、Express 、 express-validator、jwt、nodemailer、Mocha
  • 数据分析:Python、Flask、mongoDB
  • 接口文档:React、vite、react-router、sass-loader、hooks
  • 服务器:腾讯云
  • 技术脚本:Bash自动化部署脚本(shell)、COS

注:数据分析引用技术 pandas、PyMongo、KMeans、矩阵分析、聚类分析、模型训练等

数据设计思路

学生相关

老师相关

接口文档设计

UI界面

React组件封装(没用第三方 除了react-json-view)

组件 如: Message、Notion、Menu等 hooks 如:useCopy(一键复制)、useMove(手指滑动)、useScroll(鼠标滚动)


大为震惊

本专业学习的 python 使用起来竟然如此 简单 方便?

虽然之前有过 Ruby 这种动态语言的使用经验,但还是被 python 的生态惊艳到了!

我用几个示例展示:这并不仅仅是语言的简易方便,并且非常语义化

  1. 示例1:请求
python 复制代码
import requests

# 发送GET请求
response = requests.get("https://www.example.com")

# 检查响应状态码
if response.status_code == 200:
    # 打印响应内容
    print(response.text)
else:
    print("请求失败,状态码:", response.status_code)
  1. 示例2:使用Pillow库,你可以进行图像处理操作,如打开、调整大小、裁剪等。展示如何打开图像文件并调整其大小:
python 复制代码
from PIL import Image

# 打开图像
image = Image.open("image.jpg")

# 调整图像大小
resized_image = image.resize((200, 200))

# 保存调整后的图像
resized_image.save("resized_image.jpg")
  1. 示例3:Flask框架的Api服务搭建
python 复制代码
from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World!'

if __name__ == '__main__':
    app.run()
  1. 示例4:分词文本并计算词频:
python 复制代码
import nltk
from nltk.tokenize import word_tokenize
from nltk.probability import FreqDist

nltk.download('punkt')

text = "This is a simple example sentence. Tokenization is the process of splitting text into words."

# 分词
words = word_tokenize(text)

# 计算词频
freq_dist = FreqDist(words)

# 显示前10个常见词
print(freq_dist.most_common(10))

So ??? 全是库?


举一个🌰(ChatGPT老师全程)

1、这是一个 获取学生提交作业周频率的api 例如: 1、传入 10月10日(周二)就会去拿 10月9日(周一)到10月15日(周日)上下一周时间的提交数据 2、分析这周数据每天的提交量,最终返回

python 复制代码
@student.route("/week")
def week_frequency():
    date = request.args.get('time')
    name = request.args.get('name')
    if not date or not name:
        return make_response(jsonify(message="date and name are required"), 400)
     # 将查询参数转换为 datetime 对象
    start_date = datetime.strptime(date, '%Y-%m-%d')
    # 计算出开始日期之前的7天的日期
    end_date = start_date - timedelta(days=7)

    # 查询在指定日期范围内的提交
    data = mongo.db.homeworks.find({"name": name, "time": {"$gte": end_date.timestamp()*1000, "$lt": start_date.timestamp()*1000}})
    data_list = []
    for item in data:
        item['_id'] = str(item['_id'])
        data_list.append(item)

    # 如果没有找到任何提交,返回一个表示没有提交的响应
    if not data_list:
        return jsonify([{"day": day, "week": 0} for day in ['周一', '周二', '周三', '周四', '周五', '周六', '周日']])

    # 将查询参数解析为 DataFrame
    df = pd.DataFrame(data_list)

    # 将 'time' 列转换为 datetime 对象
    df['time'] = pd.to_datetime(df['time'], unit='ms')

    # 添加一列来表示一周中的哪一天(1代表周一,7代表周日)
    df['day_of_week'] = df['time'].dt.dayofweek + 1

    # 创建一个字典,将数字映射到对应的星期几
    days = {1: '周一', 2: '周二', 3: '周三', 4: '周四', 5: '周五', 6: '周六', 7: '周日'}

    # 使用这个字典来替换 'day_of_week' 列中的值
    df['day_of_week'] = df['day_of_week'].map(days)

    # 按 'day_of_week' 列进行分组,然后计算每天的提交次数
    daily_frequency = df.groupby('day_of_week')['name'].count()

    # 使用 reindex 方法来确保返回的结果包含所有的天
    daily_frequency = daily_frequency.reindex(days.values(), fill_value=0)

    # 将结果转换为 JSON 并返回
    return jsonify(daily_frequency.reset_index().rename(columns={'day_of_week': 'day', 'name': 'week'}).to_dict(orient='records'))
python 复制代码
if ... not  
	return ...   # 这小白也看得懂吧?

还不太清楚Python语言特点?

我之前做过一个欧洲杯的课题:再看一下简单不?

python 复制代码
# 导入Pandas库并读取Euro2012_stats.csv文件到DataFrame对象euro12
euro12 = pd.read_csv('./app/index/Euro2012_stats.csv')

# 计算不同球队的数量
num_teams = euro12['Team'].nunique()
# 获取DataFrame的列数
num_columns = euro12.shape[1]
# 创建一个新的DataFrame对象discipline,包含'Team'、'Yellow Cards'和'Red Cards'列
discipline = euro12[['Team', 'Yellow Cards', 'Red Cards']]
# 对discipline DataFrame按'Red Cards'和'Yellow Cards'列进行降序排序
discipline = discipline.sort_values(['Red Cards', 'Yellow Cards'], ascending = False)
# 计算所有球队的平均黄牌数量
average_yellow_cards = discipline['Yellow Cards'].mean()
# 选择进球数('Goals')大于6的球队
teams_over_6_goals = euro12[euro12['Goals'] > 6]
# 选择球队名以字母'G'开头的球队
g_teams = euro12[euro12['Team'].str.startswith('G')]
# 选择DataFrame的前7列
first_7_columns = euro12.iloc[:, :7]
# 选择DataFrame的除了最后3列以外的所有列
all_but_last_3 = euro12.iloc[:, :-3]
# 选择球队名为'England'、'Italy'和'Russia'的球队,并且只包括'Team'和'Shooting Accuracy'列
teams = ['England', 'Italy', 'Russia']
accuracy = euro12.loc[euro12['Team'].isin(teams), ['Team', 'Shooting Accuracy']]

这你还有的说嘛? 这库一引入,多方便呐 😂

无奈💢

纵使我前前后后写了十几个接口......但我的初代项目引数据量小->不足以构成数据分析?->失败!

话虽如此:公司所有的项目从0开始就有很多数据吗?数据岗位的难道不是从数据0做起的嘛~

头疼,原本想着够选题也行 :)

相关推荐
高锰酸钾_9 分钟前
Python数据可视化小项目
python·信息可视化·数据分析
GesLuck11 分钟前
C#控件开发3—文本显示、文本设值
前端·c#
轻口味17 分钟前
【每日学点鸿蒙知识】屏幕高度、证书签名、深色模式对上架影响、Taskpool上下文、List触底加载更多
前端·华为·harmonyos
m0_748235951 小时前
Python毕业设计选题:基于Hadoop 的国产电影数据分析与可视化_django+spider
hadoop·python·课程设计
测试者家园1 小时前
ChatGPT助力数据可视化与数据分析效率的提升(二)
软件测试·人工智能·信息可视化·chatgpt·数据分析·用chatgpt做软件测试·测试图书
岁月如歌,青春不败1 小时前
R语言森林生态系统结构、功能与稳定性分析与可视化
开发语言·人工智能·python·深度学习·r语言
冴羽1 小时前
Solid.js 最新官方文档翻译(12)—— 派生信号与 Memos
前端·javascript·react.js
赵谨言1 小时前
基于 Python 考研历年国家分数线大数据分析设计与实现
经验分享·python·毕业设计
hvinsion1 小时前
Python PDF批量加密工具
android·python·pdf
工业互联网专业1 小时前
Python大数据可视化:基于Python对B站热门视频的数据分析与研究_flask+hive+spider
hive·python·数据分析·flask·毕业设计·源码·spider