streamlit——搭建学生评分网站(告别问卷星)

streamlit搭建多人评分网站

文章目录

  • streamlit搭建多人评分网站
    • 一、引言
    • 二、数据准备
    • 三、streamlit代码
    • 四、数据合并代码

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5T5eTuZw-1687847855779)(D:\文件\知识图谱\streamlit_project\streamlit多人评分.png)]

一、引言

当需要对班级内多人进行打分时,为了不使用问卷星等平台进行评分,使用pandas进行操作数据,使用streamlit进行数据传输,可以实现问卷星的功能。

二、数据准备

首先需要准备一个模板文件,写入待用户评分的人。

例如刘备、关羽、张飞三人的学号、姓名、专业和班级

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qn0ozxlj-1687847855780)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230627135540050.png)]

三、streamlit代码

完整代码:

import streamlit as st
import pandas as pd

# 欢迎页面,要求用户输入自己的姓名
st.title("学生评分系统")
username = st.text_input("请输入你的姓名:")

# 加载学生名单数据
data_url = "班级.txt"
df_students = pd.read_csv(data_url, sep="\t", header=None, names=["学号", "姓名", "专业", "班级"])

# 创建空白的表格,每个学生对应一行
students = df_students["姓名"].tolist()
scores = [None] * len(students)
df = pd.DataFrame({"学号": df_students["学号"], "评分": scores})

# 显示表单,用户可以为每个学生打分
st.write("请为每个学生进行评分(1-100):")
for i in range(len(students)):
    score = st.number_input(f"{students[i]}的评分:", min_value=0, max_value=100)
    df.iloc[i, 1] = score

# 提交按钮,点击后生成csv文件保存数据
if st.button("提交"):
    df.to_csv(f"{username}.csv", index=False)
    st.success("提交成功!已将您的评分数据保存到csv文件中。")

运行结果如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pqGJ2a1R-1687847855781)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230627141907486.png)]

这样我们把所有的评分输入后,点击提交,就能生成一个评分的csv文件了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-I47YSnZc-1687847855781)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230627142446159.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dc4Di7lU-1687847855781)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230627142516541.png)]

四、数据合并代码

当所有人提交后,在本地会生成每个人的评分文件,我们需要再运行一段代码来将评分文件进行合并。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1EGFb6Za-1687847855782)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230627142635878.png)]

代码如下:

import os
import pandas as pd

# 获取文件夹路径
dir_path = './'

# 获取文件夹下所有的 CSV 文件
csv_files = [f for f in os.listdir(dir_path) if f.endswith('.csv')]

# 创建一个空的 DataFrame
merged_df = pd.DataFrame()

# 循环读取并合并所有的 CSV 文件
for csv_file in csv_files:
    # 读取 CSV 文件
    csv_path = os.path.join(dir_path, csv_file)
    df = pd.read_csv(csv_path, usecols=[1])

    # 将 DataFrame 合并到之前创建的空 DataFrame 中
    df.columns = [csv_file[:-4]] # 使用文件名作为列名
    merged_df = pd.concat([merged_df, df], axis=1)

# 将合并后的 DataFrame 保存为 CSV 文件
merged_df.to_csv('merged.csv', index=False)

合并之后就能直观看到总平均分啦。当然还能进行优化,比如将这些代码整合到一起,实时计算等。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mHKCwM9b-1687847855782)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230627143033840.png)]

结果:
在这里插入图片描述

最后关于部署到服务器的内容可参考上一篇文章:
https://blog.csdn.net/tianhai12/article/details/131358430

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/32327.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

chatgpt赋能python:Python要点:从入门到精通

Python要点:从入门到精通 Python是一门高级编程语言,是一种解释型、面向对象、动态数据类型的语言。它的设计思想是“代码易读易写”,在数据科学、人工智能、自动化测试、Web开发等领域广泛应用。本文将从入门到精通的角度来介绍Python的要点…

内网穿透技术

文章目录 前言1. 安装JAVA2. MCSManager安装3.局域网访问MCSM4.创建我的世界服务器5.局域网联机测试6.安装cpolar内网穿透7. 配置公网访问地址8.远程联机测试9. 配置固定远程联机端口地址9.1 保留一个固定tcp地址9.2 配置固定公网TCP地址9.3 使用固定公网地址远程联机 转载自内…

自学黑客(网络安全),一般人我劝你还是算了吧(自学网络安全学习路线--第九章 Internet安全协议)【建议收藏】

文章目录 一、自学网络安全学习的误区和陷阱二、学习网络安全的一些前期准备三、自学网络安全学习路线一、安全协议概述二、IPSec协议1、概述2、IP封装过程3、IPSec不安全性4、IPSec的功能5、IPSec体系结构6、IPSec的AH7、IPSec的AH8、IPSec的ESP9、IPSec的ESP10、ISAKMP11、IK…

中职网络搭建(服务器)—Linux LVM(标准答案)

题目要求如下 使用fdisk-l查看磁盘信息 我们添加的磁盘分别是sdb和sdc Fdisk /dev/sdb 依次输入n,p,1,回车,2G (新建2G的主分区) 依次输入n,e,2,回车,回车(使用剩余的全部空间建立扩展分区) 依…

高德地图的使用

JS API 结合 Vue 使用 高德地图 jsapi 下载、引入 npm add amap/amap-jsapi-loaderimport AMapLoader from amap/amap-jsapi-loader 使用2.0版本的loader需要在window对象下先配置 securityJsCode JS API 安全密钥使用 JS API 使用 script 标签同步加载增加代理服务器设置…

数据挖掘(6.1)--神经网络

目录 神经网络简介 BP算法 Delta学习规则的基本原理 BP神经网络的结构 BP神经网络的算法描述 神经网络训练一般步骤 后向传播算法的主要步骤 优缺点 BP算法简单举例 神经网络简介 神经网络是一种计算模型,它受到人脑处理信息的生物神经网络过程的启发。人…

第44步 深度学习图像识别:ResNet50建模(Tensorflow)

基于WIN10的64位系统演示 一、写在前面 (1)ResNet50 ResNet50是一种深度学习模型,由微软研究院的研究人员在2015年提出。"ResNet"的全称是"Residual Network",意为"残差网络","…

React 基本介绍

目录 1、React是什么 2、React 三大颠覆性的特点 2.1 组件 2.2 JSX 2.3 Virtual DOM 3、Flux 架构(redux) 3.1 Flux 3.2 redux 4、打包工具(webpack) 4.1 webpack与RequireJS、browserify 4.2 模块规范 4.3 非 JavaSc…

实验篇(7.2) 17. 站对站安全隧道 - FortiGate作为SSL客户端(SSL) ❀ 远程访问

【简介】虽然常用的站到站的连接用的是IPsec VPN,但是在某些特殊情况下,UDP500或4500端口被阻断,IPsec VPN无法连接,那么还有其它办法实现站到站的连接吗?SSL VPN也可以的。 实验要求与环境 OldMei集团深圳总部部署了域…

【云原生】二进制k8s集群(下)部署高可用master节点

本次部署说明 在上一篇文章中,就已经完成了二进制k8s集群部署的搭建,但是单机master并不适用于企业的实际运用(因为单机master中,仅仅只有一台master作为节点服务器的调度指挥,一旦宕机。就意味着整个集群的瘫痪&#…

【软考网络管理员】2023年软考网管初级常见知识考点(23)- 路由器的配置

涉及知识点 华为路由器的配置,华为路由器命令大全,软考大纲路由命令,静态路由和动态路由的配置命令,软考网络管理员常考知识点,软考网络管理员网络安全,网络管理员考点汇总。 原创于:CSDN博主-…

数字化转型的难点是什么?该如何突破?

01为什么要进行数字化转型? 数字化转型不仅是企业提高效率和竞争力的必经之路,也是市场发展趋势的体现。 提升业务效率:数字化转型可以采用自动化流程、数据分析和智能化技术,从而提高企业业务的自动化水平,优化流程…

贝叶斯算法人生

哈喽大家好,我是咸鱼 之前看到过耗子叔写的一篇文章《程序算法与人生选择》,这篇文章中耗子叔结合计算机中的经典算法(排序、动态规划等等),让大家在人生道路的选择上获得了一些启发 我最近看了一些关于贝叶斯思想的…

数字图像处理-图像复原与重建

文章目录 一、图像退化/复原过程的模型二、噪声模型2.1噪声的空间和频率特性2.2一些重要的噪声概率密度函数2.2.1高斯噪声2.2.2瑞利噪声2.2.3爱尔兰(伽马)噪声2.2.4指数噪声2.2.5均匀噪声2.2.6脉冲(椒盐)噪声 2.3周期噪声 三、只存…

为什么有了HTTP,还需要WebSocket协议?

目录 WebSocket是什么? WebSocket怎样建立连接? WebSocket的实际用途 WebSocket 与 HTTP 的选择 HTTP是基于TCP协议的,同一时间里,客户端和服务器只能有一方主动发数据,是半双工通信。 通常,打开某个网…

Redis从入门到精通【进阶篇】之高可用主从详解

文章目录 0.前言1.详解1.1 主从复制概述1.2 主从复制原理1.2.1.全量复制1.2.2.增量复制1.2.3.详细描述1.3 更深入理解1.4 常见面试题 2. 总结3. Redis从入门到精通系列文章 0.前言 Redis是一个高性能的键值存储系统,广泛应用于Web应用、缓存、消息队列等领域。在实…

论文解读:End-to-End Object Detection with Transformers

发表时间:2020 论文地址:https://arxiv.org/pdf/2005.12872.pdf 项目地址:https://github.com/facebookresearch/detr 提出了一种将对象检测视为集合预测问题的新方法。我们的方法简化了检测流程,有效地消除了许多手工设计的组件…

python自动化办公——读取PPT写入word表格

Python自动化办公——读取PPT内容写入word表格 文章目录 Python自动化办公——读取PPT内容写入word表格一、需求分析二、导入依赖三、代码四、结果及总结 一、需求分析 📖由于我们知识图谱课程需要将课堂小组汇报的PPT总结成word文档,而我觉得一页一页复…

python爬虫并做可视化分析--前程无忧

一.数据采集 1.采集逻辑 2.数据schema 招聘信息Schema { "岗位名称": "财务会计主管", "薪资":"1.3-2万", "地址": "*******", "经验要求": "5-7年", "公司名": "***…

JavaWeb小记——重定向和内部转发

目录 重定向 原理图 重定向语句 重定向特点 内部转发 原理图 请求转发特点 路径的书写 请求域对象request 特点 请求转发特点 重定向特点 重定向 原理图 重定向语句 response.setStatus(302); response.setHeader("location","http://www.baidu.c…