14.根据条件得到新列(mask方法

李光朱课程 2024-04-03 10:10:33
案例导入

该Excel文件的第一个工作表中A-C列为给定数据。A-C列为“姓名”,“平时成绩”和“成绩”。平时成绩大于等于90分时,在成绩的基础上加5分。

图1.原始数据

文心一言提示词

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

显示结果如下:

为了完成上述任务,我们将使用Python的pandas库。以下是一段Python代码,它执行了你所描述的任务:

import pandas as pd# 指定Excel文件路径file_path = 'D:/Samples/成绩等级2.xlsx'# 使用pandas的read_excel函数读取Excel文件中的数据# 指定sheet_name为0以读取第一个工作表# 指定引擎为'openpyxl'# nrows参数用于限制读取的行数,这里读取前5行df = pd.read_excel(file_path, sheet_name=0, engine='openpyxl', nrows=5)# 使用mask方法创建最终成绩列# 条件是平时成绩大于等于90分,在成绩的基础上加5分# 否则保持原成绩不变df['最终成绩'] = df['成绩'].mask(df['平时成绩'] >= 90, df['成绩'] + 5)# 输出表数据print(df)

这段代码首先导入pandas库,然后指定Excel文件的路径。接着,使用read_excel函数读取Excel文件中的第一个工作表,并限制只读取前5行数据。sheet_name=0表示读取第一个工作表(在pandas中,工作表是从0开始索引的)。engine='openpyxl'指定了使用的Excel读取引擎,这对于读取.xlsx文件来说是推荐的引擎。

然后,使用mask方法创建一个新的列最终成绩。mask方法接收两个参数:第一个参数是一个布尔序列,表示哪些元素需要被替换;第二个参数是替换值。在这里,条件是df['平时成绩'] >= 90,即平时成绩大于等于90分的行,这些行的最终成绩列将被设置为原成绩列的值加5分。如果条件不满足,即平时成绩小于90分,最终成绩列将保持原成绩列的值不变。

最后,使用print(df)输出包含新列最终成绩的DataFrame。

注意:在运行此代码之前,请确保你的Python环境中安装了pandas库和openpyxl库。如果没有安装,你可以使用以下命令来安装它们:

pip install pandas openpyxl

还要确保文件路径D:/Samples/成绩等级2.xlsx是正确的,并且文件是存在的。如果文件不在该路径下,你需要将file_path变量更新为正确的文件路径。

Python编辑器运行

图2.Python运行结果

本合集使用的工具如下:

文心一言:3.5版本

Python编辑器:3.9.0

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

0 阅读:0

李光朱课程

简介:感谢大家的关注