用Python实现数据录入、追加、数据校验并生成表格

简介: 本示例展示了如何使用Python和Pandas库实现学生期末考试成绩的数据录入、追加和校验,并生成Excel表格。首先通过`pip install pandas openpyxl`安装所需库,然后定义列名、检查并读取现有数据、用户输入数据、数据校验及保存至Excel文件。程序支持成绩范围验证,确保数据准确性。

用Python实现数据录入、追加、数据校验并生成表格

1. 环境准备

确保你的环境中已安装了所需的库。你可以通过pip命令安装这些库:

pip install pandas openpyxl

2. 完善后的代码

import pandas as pd
import os

# 定义学生信息的列名
columns = ["姓名", "考号", "班级", "语文", "数学", "英语", "政治", "历史", "地理", "物理", "化学", "生物", "期中排名"]

# 检查并读取现有数据
def load_existing_data(filename="期末考试成绩.xlsx"):
    if os.path.exists(filename):
        return pd.read_excel(filename)
    else:
        return pd.DataFrame(columns=columns)

# 用户输入数据
def input_student_data(df):
    print("请输入学生信息(输入'q'退出):")
    while True:
        student_data = {
   }
        for col in columns:
            while True:
                value = input(f"请输入{col}:")
                if value.lower() == 'q':
                    return df
                try:
                    # 尝试将数值类型的字段转换为浮点数
                    if col not in ["姓名", "考号", "班级"]:
                        value = float(value)
                        if value < 0 or value > 100:
                            print(f"{col}的成绩必须在0到100之间,请重新输入。")
                            continue
                    student_data[col] = value
                    break
                except ValueError:
                    print(f"无效的输入,请重新输入{col}:")
        df.loc[len(df)] = student_data
        print("学生信息已添加。")

# 生成并保存Excel文件
def save_to_excel(df, filename="期末考试成绩.xlsx"):
    df.to_excel(filename, index=False)
    print(f"数据已保存到 {filename}")

# 主程序
if __name__ == "__main__":
    # 加载现有数据
    df = load_existing_data()

    # 输入新数据
    df = input_student_data(df)

    # 保存数据
    save_to_excel(df)

3. 代码解析

3.1 导入必要的库

import pandas as pd
import os

这里导入了数据处理相关的pandas库和用于文件操作的os库。

3.2 定义学生信息的列名

columns = ["姓名", "考号", "班级", "语文", "数学", "英语", "政治", "历史", "地理", "物理", "化学", "生物", "期中排名"]

定义了一个包含所有列名的列表。

3.3 检查并读取现有数据

def load_existing_data(filename="期末考试成绩.xlsx"):
    if os.path.exists(filename):
        return pd.read_excel(filename)
    else:
        return pd.DataFrame(columns=columns)
  • 检查指定的Excel文件是否存在。
  • 如果文件存在,读取并返回其内容。
  • 如果文件不存在,返回一个空的DataFrame,列名为预定义的列名。

3.4 用户输入数据

def input_student_data(df):
    print("请输入学生信息(输入'q'退出):")
    while True:
        student_data = {
   }
        for col in columns:
            while True:
                value = input(f"请输入{col}:")
                if value.lower() == 'q':
                    return df
                try:
                    # 尝试将数值类型的字段转换为浮点数
                    if col not in ["姓名", "考号", "班级"]:
                        value = float(value)
                        if value < 0 or value > 100:
                            print(f"{col}的成绩必须在0到100之间,请重新输入。")
                            continue
                    student_data[col] = value
                    break
                except ValueError:
                    print(f"无效的输入,请重新输入{col}:")
        df.loc[len(df)] = student_data
        print("学生信息已添加。")
  • 提示用户输入学生信息。
  • 使用一个无限循环来持续接收用户输入,直到用户输入q退出。
  • 对于每个字段,尝试将输入值转换为适当的类型(字符串或浮点数)。
  • 如果输入无效或成绩不在0到100之间,提示用户重新输入。
  • 将输入的数据添加到DataFrame中。

3.5 生成并保存Excel文件

def save_to_excel(df, filename="期末考试成绩.xlsx"):
    df.to_excel(filename, index=False)
    print(f"数据已保存到 {filename}")
  • 使用pandasto_excel方法将DataFrame保存为Excel文件。
  • index=False表示不保存行索引。

3.6 主程序

if __name__ == "__main__":
    # 加载现有数据
    df = load_existing_data()

    # 输入新数据
    df = input_student_data(df)

    # 保存数据
    save_to_excel(df)
  • 调用load_existing_data函数加载现有数据。
  • 调用input_student_data函数获取用户输入的新数据。
  • 调用save_to_excel函数将数据保存到Excel文件中。

4. 运行代码

运行上述代码后,程序会提示你逐个输入学生的各项信息。输入完成后,数据将被追加到现有的Excel文件中,如果文件不存在则会创建一个新的文件并保存数据。同时,程序会对各科成绩进行验证,确保成绩在0到100之间。

希望这个示例能帮助你实现数据追加录入并生成电子表格文件,并确保数据的有效性。

相关文章
|
6月前
|
数据挖掘 Python
【Python】已解决:Python pandas读取Excel表格某些数值字段结果为NaN问题
【Python】已解决:Python pandas读取Excel表格某些数值字段结果为NaN问题
612 0
|
8月前
|
存储 NoSQL MongoDB
MongoDB数据库转换为表格文件的Python实现
MongoDB数据库转换为表格文件的Python实现
240 0
|
6月前
|
关系型数据库 MySQL 数据库
使用Python读取xlsx表格数据并导入到MySQL数据库中时遇到的问题24
【7月更文挑战第24天】使用Python读取xlsx表格数据并导入到MySQL数据库中
70 7
|
7月前
|
数据采集 Web App开发 数据挖掘
使用Python和BeautifulSoup轻松抓取表格数据
使用Python和BeautifulSoup,结合代理IP,可以从网页抓取表格数据,如中国气象局的天气信息。通过requests库发送HTTP请求,BeautifulSoup解析HTML提取表格。安装必要库后,设置代理IP,发送请求,解析HTML找到表格,提取数据并存储。通过Pandas进行数据分析,如计算平均气温。这种方法让数据抓取和分析变得更加便捷。
194 3
使用Python和BeautifulSoup轻松抓取表格数据
|
6月前
|
数据格式 Python
Python代码示例,读取excel表格,将行数据转为列数据。(10)
【7月更文挑战第10天】Python代码示例,读取excel表格,将行数据转为列数据。
235 2
|
8月前
|
数据挖掘 数据处理 Python
【Python DataFrame 专栏】Python DataFrame 入门指南:从零开始构建数据表格
【5月更文挑战第19天】本文介绍了Python数据分析中的核心概念——DataFrame,通过导入`pandas`库创建并操作DataFrame。示例展示了如何构建数据字典并转换为DataFrame,以及进行数据选择、添加修改列、计算统计量、筛选和排序等操作。DataFrame适用于处理各种规模的表格数据,是数据分析的得力工具。掌握其基础和应用是数据分析之旅的重要起点。
132 2
【Python DataFrame 专栏】Python DataFrame 入门指南:从零开始构建数据表格
|
6月前
|
Python
【Python】已解决:(Python写入Excel表格报错)‘NoneType’ object has no attribute ‘write’
【Python】已解决:(Python写入Excel表格报错)‘NoneType’ object has no attribute ‘write’
379 0
|
8月前
|
数据采集 存储 数据挖掘
Python DataFrame初学者指南:轻松上手构建数据表格
【5月更文挑战第19天】本文是针对初学者的Pandas DataFrame指南,介绍如何安装Pandas、创建DataFrame(从字典或CSV文件)、查看数据(`head()`, `info()`, `describe()`)、选择与操作数据(列、行、缺失值处理、数据类型转换、排序、分组聚合)以及保存DataFrame到CSV文件。通过学习这些基础,你将能轻松开始数据科学之旅。
|
8月前
|
存储 数据采集 数据可视化
Python列表到Excel表格第一列的转换技术详解
Python列表到Excel表格第一列的转换技术详解
131 0
|
8月前
|
数据挖掘 数据处理 Python
【亮剑】介绍了Python中以表格格式打印列表的三种方法
【4月更文挑战第30天】本文介绍了Python中以表格格式打印列表的三种方法:1) 使用字符串格式化,适用于简单场景;2) 使用prettytable库,适合需要更多格式化选项的情况;3) 使用pandas库,适用于处理大量数据和复杂分析。根据需求选择合适的方法来展示数据。
406 0