Python Pandas 实现同学信息与成绩 DataFrame 创建、数据抽取及增删改查
以下是使用 Python 的 `pandas` 库来解决上述问题的代码: ```python import pandas as pd # 一、利用二维列表创建保存同学基本信息的 DataFrame student_info_list = [['001', '张三', '男', 20], ['002', '李四', '女', 21], ['003', '王五', '男', 19], ['004', '赵六', '女', 22]] student_info_df = pd.DataFrame(student_info_list, columns=['学号', '姓名', '性别', '年龄'], index=['001', '002', '003', '004']) print(student_info_df.head(3)) # 一、利用字典创建保存同学成绩的 DataFrame student_score_dict = {'001': {'数学分析': 85, '程序设计': 90, '英语': 80}, '002': {'数学分析': 75, '程序设计': 85, '英语': 70}, '003': {'数学分析': 90, '程序设计': 80, '英语': 85}, '004': {'数学分析': 65, '程序设计': 70, '英语': 60}} student_score_df = pd.DataFrame(student_score_dict) print(student_score_df.head(3)) # 三、数据抽取 # 1. 抽取并显示第一位同学的各科成绩 print(student_score_df.iloc[0]) # 抽取并显示某个指定学号同学的基本信息(假设指定学号为 003) print(student_info_df.loc['003']) # 2. 抽取并显示数学学科的所有同学的成绩 print(student_score_df['数学分析']) # 3. 抽取并显示第 2,第 4 个同学的基本信息 print(student_info_df.iloc[[1, 3]]) # 4. 抽取并显示第 2 个到第 4 个同学的基本信息 print(student_info_df.iloc[1:4]) # 5. 抽取并显示数学不及格(<60)的学生的相关成绩信息 print(student_score_df[student_score_df['数学分析'] < 60]) # 6. 抽取并显示有不及格成绩的学生的相关成绩信息 has_failed = (student_score_df < 60).any(axis=1) print(student_score_df[has_failed]) # 四、数据增删改查 # 1. 给学生基本信息的 DataFrame 添加一列专业 student_info_df['专业'] = ['计算机', '数学', '物理', '化学'] # 添加另两位同学相关信息(行) new_student_info = [['005', '孙七', '男', 20, '生物'], ['006', '周八', '女', 21, '历史']] new_student_info_df = pd.DataFrame(new_student_info, columns=['学号', '姓名', '性别', '年龄', '专业'], index=['005', '006']) student_info_df = pd.concat([student_info_df, new_student_info_df]) print(student_info_df) # 2. 给学生成绩数据的 DataFrame 数学分析前面添加一列高等代数,成绩自拟 student_score_df.insert(0, '高等代数', [90, 80, 70, 60]) # 添加另两位同学的相关成绩数据(行) new_student_score = {'005': {'高等代数': 85, '数学分析': 70, '程序设计': 80, '英语': 75}, '006': {'高等代数': 75, '数学分析': 65, '程序设计': 70, '英语': 65}} new_student_score_df = pd.DataFrame(new_student_score) student_score_df = pd.concat([student_score_df, new_student_score_df]) print(student_score_df) ``` ######[AI写代码神器 | 943点数解答 | 2024-10-20 21:03:47]
- C 语言:快速实现 5 个学生信息录入、按成绩升序排序并输出!(字节豆包 | 373点数解答 | 2024-10-30 00:37:20)406
- C语言实现:输入5名学生信息并按成绩升序排序输出(字节豆包 | 354点数解答 | 2024-10-30 18:45:58)348
- C语言:输入5个学生信息,按成绩升序排序并输出(字节豆包 | 373点数解答 | 2024-10-31 19:49:58)342
- C语言:输入5名学生信息并按成绩升序排序输出(字节豆包 | 326点数解答 | 2025-01-01 20:11:47)335
- 成绩等级统计:20个60 - 100分成绩的等级数量揭秘(字节豆包 | 219点数解答 | 2025-04-09 10:20:32)214
- 培训机构学员成绩与年龄更新:C++ 代码实现(DeepSeek | 186点数解答 | 2025-12-16 18:04:31)53
- Python 处理培训机构学员培训后年龄与 NOIP 成绩提升情况(DeepSeek | 73点数解答 | 2025-12-16 18:05:20)57
- 培训机构学员成绩提升:C++代码实现年龄与NOIP成绩更新(DeepSeek | 178点数解答 | 2025-12-31 12:20:24)55
- Python 运行报错:urllib3 网络连接创建失败,原因及排查建议(字节豆包 | 161点数解答 | 2024-10-31 00:39:36)450
- Java:抽象类 Vehicle 及子类 Car、MotorBike 实战演示(讯飞星火 | 440点数解答 | 2024-06-06 23:18:54)306
- 用 Pandas 深度剖析数据:从读取到统计分析全流程实战(GPT | 642点数解答 | 2024-06-30 15:39:49)351
- 用 Pandas 深入分析招聘数据:从数据读取到可视化全流程解析(GPT | 1539点数解答 | 2024-06-30 15:56:50)363