AI分析SP和pk进行sk分析

SP原始表行标题代表题目序号,列代表学生,如果学生答对题目为1,否则为0。问题知识点矩阵这个文件横轴代表每个知识点,列标题代表每个题目序号,如果题目包含这个知识点则该处值为1。通过两个文件判断学生对于每个知识点的掌握,生成一个Excel,列为学生,行标题为知识点。如果学生对每个知识点关联的题目都能答对吗,值为2,都答错值为0,一些答对一些答错值为1

1
按行遍历这个Excel中含1的单元格返回该单元格所在列

2

到这一步能成功返回结果

import pandas as pd# 读取Excel文件
df1 = pd.read_excel('问题-知识点矩阵.xlsx')class knowledge:def __init__(self, name):self.name = nameflag=0class question:def __init__(self, name):self.name = nameself.knowledge = []self.flag=0class student:def __init__(self, name):self.name = nameself.question= []# 创建student列表
students = []
questions = []knowledges=[]# 第一列的列名
first_column_name = df1.columns[0]students = []def get_student_results(file_path):# 读取Excel文件df = pd.read_excel(file_path)# 初始化一个空字典来存储结果results = {}# 遍历数据框的每一行for index, row in df.iterrows():# 初始化student对象student_obj = student(row['学生'])# 遍历除'学生'列之外的其他列for col in df.columns[1:]:# 检查学生的答案是否为1(正确)或0(错误)if row[col] == 1:flag = 1else:flag = 0# 创建question对象,并设置flagquestion_obj = question(col)question_obj.flag = flag# 将question对象添加到student对象的question列表中for index, value in df1[first_column_name].items():# 找到当前行中所有包含1的列ones_columns = [col for col in df1.columns[1:] if df1.at[index, col] == 1]# 遍历ones_columns列表中的每个列名# 创建question对象#print(question_obj.name)if question_obj.name ==  value:#value  是 题目#print(value)for col in ones_columns:# 将question对象添加到questions列表中question_obj.knowledge.append(col)questions.append(question_obj)student_obj.question.append(question_obj)# 遍历第一列的所有元素# 将student对象添加到students列表中students.append(student_obj)
get_student_results('sp原始表.xlsx')
# 遍历student列表,打印
for student in students:print(student.name)for question in student.question:print(question.name, question.flag)for knowledge in question.knowledge:print(knowledge)

在这里插入图片描述
分别返回 题目:答对还是打错

涉及到的知识点包括

成功获取集合:

import pandas as pd# 读取Excel文件
df1 = pd.read_excel('问题-知识点矩阵.xlsx')class knowledge:def __init__(self, name):self.name = nameflag=0class question:def __init__(self, name):self.name = nameself.knowledge = []self.flag=0class student:def __init__(self, name):self.name = nameself.question= []# 创建student列表
students = []
questions = []knowledges=[]# 第一列的列名
first_column_name = df1.columns[0]students = []def get_student_results(file_path):# 读取Excel文件df = pd.read_excel(file_path)# 初始化一个空字典来存储结果results = {}# 遍历数据框的每一行for index, row in df.iterrows():# 初始化student对象student_obj = student(row['学生'])# 遍历除'学生'列之外的其他列for col in df.columns[1:]:# 检查学生的答案是否为1(正确)或0(错误)if row[col] == 1:flag = 1else:flag = 0# 创建question对象,并设置flagquestion_obj = question(col)question_obj.flag = flag# 将question对象添加到student对象的question列表中for index, value in df1[first_column_name].items():# 找到当前行中所有包含1的列ones_columns = [col for col in df1.columns[1:] if df1.at[index, col] == 1]# 遍历ones_columns列表中的每个列名# 创建question对象#print(question_obj.name)if question_obj.name ==  value:#value  是 题目#print(value)for col in ones_columns:# 将question对象添加到questions列表中question_obj.knowledge.append(col)questions.append(question_obj)student_obj.question.append(question_obj)# 遍历第一列的所有元素# 将student对象添加到students列表中students.append(student_obj)
get_student_results('sp原始表.xlsx')right=[]
worng=[]
hunhe=[]
name=[]# 更改类名为AllResults以避免与内置函数all()冲突
class AllResults:def __init__(self, name):self.name = nameself.right = []  # 答对的知识点self.wrong = []  # 答错的知识点self.hunhe = []  # 交集,即答对和答错中都有的知识点# 假设students是已经定义好的学生列表
# students = [...]# 初始化存储结果的列表
all_results_list = []for student in students:# 创建AllResults实例all_results = AllResults(student.name)right_set = set()  # 使用集合来避免重复wrong_set = set()for question in student.question:if question.flag == 1:right_set.update(question.knowledge)elif question.flag == 0:wrong_set.update(question.knowledge)# 更新AllResults实例的属性all_results.right.extend(right_set)all_results.wrong.extend(wrong_set)all_results.hunhe.extend(right_set.intersection(wrong_set))# 移除交集部分all_results.right = list(right_set - wrong_set)all_results.wrong = list(wrong_set - right_set)# 添加到结果列表all_results_list.append(all_results)# 遍历all_results_list,写入txt文件
for i, all_results in enumerate(all_results_list):with open(f'{all_results.name}.txt', 'w') as f:f.write(f'{all_results.name}\n')f.write(f'答对知识点:{all_results.right}\n')f.write(f'答错知识点:{all_results.wrong}\n')f.write(f'交集知识点:{all_results.hunhe}\n')

下面开始判断
sk:

我要判断的是每个学生对于不同的问题,这些不同问题下面的相同知识点的flag是否一致

判断knowledge.name 的name相同的知识点 的flagflag是否都是1,或者都是0,或者有1有0三种情况
,返回给我关于每个knowledge.name所在的三种情况

class AllResults:
def init(self, name):
self.name = name
self.right = [] # 答对的知识点
self.wrong = [] # 答错的知识点
self.hunhe = [] # 交集,即答对和答错中都有的知识点 写本地代码把AllResults类中的name和s.xlsx对应以后,s.xlsx的表头是知识点,self.right = [] #
答对的知识点里面单元格填2,self.wrong = [] # 答错的知识点单元格填0, self.hunhe = [] #
交集,即答对和答错中都有的知识点用1填充,无需你运行,给我代码

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Web安全:文件上传漏洞详解,文件上传漏洞原理、绕过方式和防御方案。

「作者简介」:2022年北京冬奥会网络安全中国代表队,CSDN Top100,就职奇安信多年,以实战工作为基础对安全知识体系进行总结与归纳,著作适用于快速入门的 《网络安全自学教程》,内容涵盖系统安全、信息收集等…

Java实现链表

链表 前言一、链表的概念及结构二、链表的分类三、链表的实现无头单向非循环链表实现无头双向链表实现具体代码 四、链表习题五、顺序表和链表的区别 前言 推荐一个网站给想要了解或者学习人工智能知识的读者,这个网站里内容讲解通俗易懂且风趣幽默,对我…

51单片机-实机演示(单多个数码管)

仿真链接&#xff1a; http://t.csdnimg.cn/QAPhx 目录 一.引脚位置 二.多个显示 三 扩展 一.引脚位置 注意P00 - >A ; 这个多个的在左边,右边的A到B是控制最右边那个单个的. 接下来上显示单个的代码 #include <reg52.h> #include <intrins.h> #define u…

大字体学生出勤记录系统网页HTML源码

源码介绍 上课需要一个个点名记录出勤情况&#xff0c;就借助AI制作了一个网页版学生出勤记录系统&#xff0c; 大字体显示学生姓名和照片&#xff0c;让坐在最后排学生也能看清楚&#xff0c;显示姓名同时会语音播报姓名&#xff0c; 操作很简单&#xff0c;先导入学生姓名…

用源码建站可能涉及知产侵权,建站的注意!

近日普推知产老杨看到央视报道一家公司用了某建站源码涉及知产侵权&#xff0c;起诉了全国八千多家公司&#xff0c;某梦自从创始人因病转给某公司后&#xff0c;也在大量起诉用其建站代码公司侵权&#xff0c;他们也都是申请了相关的著作权。 有的中小企业在运营中会涉及建站…

c++ 将指针转换为 void* 后,转换为怎么判断原指针类型?

当将指针转换为void后&#xff0c;擦除了指针所指向对象的类型信息&#xff0c;因此无法通过void指针来判断原始指针的类型。我这里有一套编程入门教程&#xff0c;不仅包含了详细的视频讲解&#xff0c;项目实战。如果你渴望学习编程&#xff0c;不妨点个关注&#xff0c;给个…

PXI总线测试模块-6939 矢量信号发生器

频率范围&#xff1a;250kHz&#xff5e;6GHz 6939 矢量信号发生器 6939矢量信号发生器提供频率范围250kHz~6GHz的多制式信号&#xff0c;单边带相位噪声优于-120dBc/Hz10kHz&#xff08;载波1GHz&#xff09;、EVM优于1.0%&#xff0c;能够实现高纯连续波输出、模拟调制信号输…

Linux: network: TCP: zero window size/window full 示例

最近遇到一个问题,当前机器的CPU使用率非常高,然后导致其中一个程序处理socket的数据过慢,然后出现下面的zero的示例。 下面是在接收buff用光的时候,发出的 TCP zeroWindows的消息 这种问题就是内存,CPU,网速之间的性能取舍。具体解决的话,需要看具体的需要是什么样的?…

参数高效微调PEFT(一)快速入门BitFit、Prompt Tuning、Prefix Tuning

参数高效微调PEFT(一)快速入门BitFit、Prompt Tuning、Prefix Tuning 目前&#xff0c;模型最全的网站是HuggingFace&#xff0c;但是国内需要魔法流量才能访问。另外&#xff0c;现在大模型权重文件都较大&#xff0c;也会浪费不少流量&#xff0c;因此这里推荐使用魔搭社区下…

Spring+SpringBoot面试总结(近两万字)

SpringSpringBoot面试总结 一、Spring Bean1.1、bean的生命周期&#xff08;对象的创建使用销毁&#xff09;1.1.1、准备工作1.1.2、创建Bean对象1.1.3、注册销毁 1.2、 bean的作用域1.2.1、配置方式 1.3、 spring 自动装配 bean 有哪些方式&#xff08;存疑存疑&#xff09;1.…

软件测试金字塔,对号入座,你在哪层?

自从学习了软件测试,脑袋也清晰了,目标也明确了,就是不知道学到哪里了.中间有很多的困难也有很多成就感,你目前在那个阶段呢? 初级测试工程师 技能要求:需求分析,使用等价类边界值等方法进行用例设计,执行功能测试,发现提交跟踪bug,使用禅道,会在测试中会操作数据库进行检查和…

数学建模--LaTeX的基本使用

目录 1.回顾 2.设置这个页眉和页脚 3.对于字体的相关设置 4.对于这个分级标题的设置 5.列表的使用 6.插入图片 1.回顾 &#xff08;1&#xff09;昨天我们了解到了这个latex的使用基本常识&#xff0c;以及这个宏包的概念&#xff0c;区域的划分&#xff0c;不同的代码代…

电磁仿真--CST综合建模练习1

1. 简介 本文展示一个CST自带的示例&#xff0c;在三维空间中使用带线计算传输线的S参数。基板顶部的带线通过小圆柱连接到底部的短带线&#xff0c;以便绕过可能存在的障碍。 结构生成 该结构完全通过参数输入进行建模&#xff0c;参考波长为10毫米&#xff0c;因此可以轻松…

JavaWeb开发 1.Web开发 介绍

我的生命是一万次的春和景明 —— 24.5.27 一、什么是Web Web&#xff1a; 全球广域网&#xff0c;也称为万维网(www World Wide Web)&#xff0c;能够通过浏览器访问的网站 Web网站的工作流程 学习流程

kafka的安装

windows下kafka的安装 【Kafka】Windows下安装Kafka&#xff08;图文记录详细步骤&#xff09;_windows安装kafka-CSDN博客 kafka生产消息 kafka消费消息

指纹识别经典图书、开源算法库、开源数据库

目录 1. 指纹识别书籍 1.1《精通Visual C指纹模式识别系统算法及实现》 1.2《Handbook of Fingerprint Recognition》 2. 指纹识别开源算法库 2.1 Hands on Fingerprint Recognition with OpenCV and Python 2.2 NIST Biometric Image Software (NBIS) 3. 指纹识别开源数…

【StableDiffusion】SD1.4、1.5、2.0、2.1 和 SDXL0.9-1.0、SDXL turbo 等的区别

总览 1.基础sd base model家族&#xff1a;SD1.4、SD1.5、SD1.5-LCM、SD2.0、SD2.0-768、SD2.1、SD2.1-768、SD2.1-UNCLIP 2.升级sdxl base model家族&#xff1a;SDXL0.9、SDXL1.0、SDXL1.0-LCM、SDXL-DISTILLED、SDXL-TURBO 3.专门用于视频生成的 SVD 家族&#xff1a;SVD、…

C++习题(1)

一、题目描述&#xff1a; 二、代码展示&#xff1a; #include <iostream> #include <iomanip> using namespace std; struct Student{char name[20];int id;int age;float score; }; int main() {int n;cin>>n;Student student[n];float sum0.0;for(int i0…

QQ名片满级会员展示生成HTML源码

源码介绍 QQ名片满级会员展示生成HTML源码&#xff0c;源码由HTMLCSSJS组成&#xff0c;双击html文件可以本地运行效果&#xff0c;也可以上传到服务器里面&#xff0c;保存素材去选择QQ个性名片-选择大图模板-把图上传照片墙即可 源码效果 源码下载 蓝奏云&#xff1a;http…

大数据开发面试题【Mysql篇】

181、mysql数据库中的引擎 用于数据存储、处理和保护数据的核心服务&#xff0c;不同的数据库引擎有其各自的特点&#xff0c;常见的引擎&#xff1a;InnoDB&#xff0c;Mylsam、Memory、Mrg_Mylsam、Blackhole innodb&#xff1a;是一个事务性存储引擎&#xff0c;提供了对事…