13.根据多列数据组成的条件得到新列

李光朱课程 2024-03-26 04:34:30
案例导入

数据最后添加一列“最终成绩”,该列的值用平时成绩和成绩,根据以下条件得到:平时成绩大于等于90分时,在成绩的基础上加5分。

图1.原始数据

文心一言提示词

打开百度“文心一言”,输入提示词:“你是pandas专家,文件路径为:D:/Samples/成绩等级2.xlsx。该Excel文件的第一个工作表中A-C列为给定数据。A-C列为“姓名”,“平时成绩”和“成绩”。用pandas导入Excel文件的数据,导入前5行数据,引擎为"openpyxl"。在导入的数据最后添加一列“最终成绩”,该列的值用平时成绩和成绩,根据以下条件得到:平时成绩大于等于90分时,在成绩的基础上加5分。输出表数据。添加代码注释。”

显示结果如下:

作为pandas专家,我可以为您提供一个Python脚本,该脚本使用pandas库导入Excel文件,并根据您提供的条件添加“最终成绩”列。以下是根据您的要求编写的代码,并附有详细的注释。

首先,确保您已经安装了pandas和openpyxl库。如果尚未安装,请先使用pip安装它们:

pip install pandas openpyxl

然后,您可以使用以下Python脚本来实现所需的功能:

import pandas as pd# 定义Excel文件的路径file_path = "D:/Samples/成绩等级2.xlsx"# 使用pandas的read_excel函数导入Excel文件的数据# 参数engine='openpyxl'指定使用openpyxl作为引擎来读取xlsx文件# 参数nrows=5指定只导入前5行数据data = pd.read_excel(file_path, engine='openpyxl', nrows=5)# 定义一个函数,根据平时成绩和成绩计算最终成绩def calculate_final_score(usual_score, exam_score): # 如果平时成绩大于等于90分,则在成绩的基础上加5分 if usual_score >= 90: return exam_score + 5 else: return exam_score # 否则,最终成绩与成绩相同# 应用上述函数,创建“最终成绩”列# 使用apply函数沿着axis=1(即行方向)应用函数,其中args参数传递平时成绩和成绩作为函数的参数data['最终成绩'] = data.apply(lambda row: calculate_final_score(row['平时成绩'], row['成绩']), axis=1)# 输出表数据print(data)

这段代码首先导入了pandas库,并定义了Excel文件的路径。然后,它使用pd.read_excel()函数导入文件的前5行数据,指定了engine='openpyxl'以使用openpyxl引擎读取xlsx文件。接下来,定义了一个函数calculate_final_score()来计算最终成绩。最后,使用apply()函数沿着行方向(axis=1)应用这个函数,创建了一个新的“最终成绩”列,并输出了包含新列的数据表。

Python编辑器运行

图2.Python运行结果

本合集使用的工具如下:

文心一言:3.5版本

Python编辑器:3.9.0

申明:以上结果皆为实际运行结果,如遇到无法运行可在评论区留言。部分数据来自网络,如有侵权请私信告知,感谢!

0 阅读:2

李光朱课程

简介:感谢大家的关注