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

2023-11-17

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

streamlit——搭建学生评分网站(告别问卷星) 的相关文章

随机推荐

  • 动态规划练习一 14:怪盗基德的滑翔翼

    描述 怪盗基德是一个充满传奇色彩的怪盗 专门以珠宝为目标的超级盗窃犯 而他最为突出的地方 就是他每次都能逃脱中村警部的重重围堵 而这也很大程度上是多亏了他随身携带的便于操作的滑翔翼 有一天 怪盗基德像往常一样偷走了一颗珍贵的钻石 不料却被柯
  • GoogLeNet网络系列解读

    一 Inception V1 Inception Module是GoogLeNet的核心组成单元 结构如下图 Inception Module基本组成结构有四个成分 11卷积 33卷积 55卷积 33最大池化 最后对四个成分运算结果进行通道
  • 《React后台管理系统实战:七》用户管理:获取/添加/修改/删除用户、菜单权限管理

    一 基础页面 1 请求数据 数据 http localhost 5000 manage user list status 0 data users id 5e7d7953d4a98d1a1c1cf00a username jim passw
  • 好爽啊

    爽你妹 转载于 https www cnblogs com zhangxiangning p 10303124 html
  • Python手册(Machine Learning)--statsmodels(多变量统计)

    MultivariateStatistics 多变量统计 主成分分析 Principal Component Analysis 因子分析 Factor Analysis 典型相关 Canonical Correlation 多元方差分析 M
  • Muduo库源码剖析(十)——总结

    Muduo网络库的核心代码模块 Channel 封装fd的对应事件变化情况 和关注事件 fd events revents callbacks 两种channel listenfd acceptorChannel connfd connec
  • 和平精英体验服显示服务器未影响,《和平精英》体验服申请条件是什么?一定要注意这两点!...

    和平精英 体验服是很多玩家了解游戏新版本内容的一个重要窗口 很多新玩法和新地图都会现在体验服中上线测试以后才会在正式服务器中上线 不过很多玩家对于如何才能进入体验服游戏 还根本一无所知 那这次小编就来和大家好好聊聊这个问题 如果感兴趣的话
  • VS报错E1696 无法打开类似于stdio.h等头文件的解决办法

    VS报错E1696 无法打开类似于stdio h等头文件的解决办法 我的VS版本是2022的 然后我今天把同事在VS2017上的code 一个完整的解决方案 从svn上拿过来 结果发现 一大堆E1696的错误 主要表现就是项目中includ
  • Working mode of block password

    本文授权自 MagicBoy Working mode of block password Network security 1 电子密码本ECB electronic codebook mode 3 密码反馈CFB cipher feed
  • Weex实现富文本展示

    Weex默认不支持富文本展示 需要我们手动实现 已知的方式有两种 第一种方式 使用Weex Ui中的wxc rich text组件 它提供了丰富的功能样式 但是其局限性也是显而易见的 不能直接识别h5样式 第二种方式 第一步 自定义组件 请
  • 幼儿园html网页代码,html幼儿园网站页面div+css

    实例简介 幼儿园网站全站代码 使用div css技术 可参考下载 实例截图 核心代码 schoolyr schoolyr baojian html css alixixi css baojian css css css jiaoxue cs
  • python 注解, 装饰器@ 详解

    目录 1 组合数据类型注解方式 2 自定义类注解 3 参数是函数的注解 4 变量注解 5 装饰器 python注解包含 组合数据类型注解 自定义类注解 变量注解 参数是函数的注解等 python的注解 能够让python 像java C语言
  • qt creator debug无法调试 进入 qt源码

    qt creator无法调试qt源码的问题 如果自己写的代码无法调试请移步这里 qt下载地址 https download qt io archive qt https download qt io new archive qt 正常来讲
  • .net 5 开发 linux 桌面应用_Electron跨平台桌面应用开发工具

    一 简介 Electron是github发布的跨平台桌面应用开发工具 支持Web技术开发桌面应用 其本身是基于C 开发的 GUI核心来自于Chrome 而JavaScript引擎使用v8 简单来说 Electron相当于一个浏览器的外壳 可
  • Jupyter-02-numpy:创建ndarray 数组

    创建ndarray 数组的方法 import numpy as np 创建ndarray 数组需要调用numpy库 用列表创建 创建一维数组 arr1 np array 1 2 3 4 arr1 s a b c np array s 用元组
  • Scala中的元祖Tuple

    Scala中元祖是一组任意数据类型的集合 与列表一样 元组也是不可变的 但与列表不同的是元组可以包含不同类型的元素 数组 元祖 定义 元素中数据类型相同 元素不同数据类型 声明 val arr Array 1 2 3 var tuple 1
  • 华为服务器系统故障,服务器系统故障

    服务器系统故障 内容精选 换一换 需在所有云服务器上安装Data Provider软件 SAP技术支持人员通过该软件收集云服务器所在的平台信息 以便在SAP系统故障 性能下降时进行定位和分析 SAP NetWeaver所在的服务器上 在创建
  • 导致java.lang.UnsatisfiedLinkError错误的一种解决办法

    欢迎转载请注明出处http blog csdn net ning gg article details 53641254 在程序中加入so文件导致java lang UnsatisfiedLinkError错误的一种解决办法 可能这个解决办
  • 学Java需要的英语水平以及关键词汇总

    还是需要英语的 但是是编程英语 和从小到大学的 英语 不是一回事 Java语言的输出语句 System out print 你好 此处的 System表示 系统 out表示 在 外面 print表示 打印 每一个单词之间使用 英文输入法的点
  • streamlit——搭建学生评分网站(告别问卷星)

    streamlit搭建多人评分网站 文章目录 streamlit搭建多人评分网站 一 引言 二 数据准备 三 streamlit代码 四 数据合并代码 一 引言 当需要对班级内多人进行打分时 为了不使用问卷星等平台进行评分 使用pandas