12.根据多级条件得到新列

李光朱课程 2024-03-28 02:45:03
案例导入

如下表格,在“成绩”后面增加一列“等级”。成绩大于等于90时等级为“优秀”,否则成绩大于等于80分时为“良好”,否则大于等于70分时为“中等”,否则大于等于60分时为“及格”,否则为“不及格”。

图1.原始数据

文心一言提示词

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

显示结果如下:

首先,请确保已经安装了pandas库以及openpyxl库,因为我们将使用openpyxl作为引擎来读取Excel文件。如果尚未安装这些库,可以通过pip来安装:

pip install pandas openpyxl

接下来,我们将编写Python代码来导入Excel文件中的数据,并根据成绩添加等级列。下面是完整的代码,包含必要的注释:

import pandas as pd# 设置Excel文件的路径file_path = 'D:/Samples/成绩等级.xlsx'# 使用pandas的read_excel函数读取Excel文件,这里指定引擎为'openpyxl'# 并只导入前5行数据,通过设置nrows参数实现data = pd.read_excel(file_path, engine='openpyxl', nrows=5)# 定义一个函数,根据成绩返回对应的等级def get_grade(score): if score >= 90: return '优秀' elif score >= 80: return '良好' elif score >= 70: return '中等' elif score >= 60: return '及格' else: return '不及格'# 使用pandas的apply函数,将get_grade函数应用到'成绩'列上# 创建一个新的'等级'列,并存储结果data['等级'] = data['成绩'].apply(get_grade)# 输出整个数据表print(data)

确保将代码中的文件路径替换为实际的Excel文件路径。这段代码首先导入了pandas库,然后读取了Excel文件的前5行数据。之后,定义了一个函数get_grade,该函数根据传入的成绩返回相应的等级。最后,使用apply方法将这个函数应用到数据框的'成绩'列上,创建一个新的'等级'列,并打印出修改后的数据框。

Python编辑器运行

图2.Python运行结果

本合集使用的工具如下:

文心一言:3.5版本

Python编辑器:3.9.0

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

0 阅读:14