Pandas小技巧,给Excel添加一列,处理成绩数字的等级-环球微头条

给大家分享一个Pandas处理Excel的非常小的技巧知识点。


(资料图)

怎样给一个Excel添加一列,这一列是根据其它列的数字计算出来的。

问题定义

问题是这样的一个输入的excel文件:

学号姓名性别成绩101王小丽女69102王宝勤男85103杨玉萍女49104田东会女90105陈雪蛟女73106杨建丰男42107黎梅佳女79108张兴男91109马进春女48110魏改娟女100111王冰研男64

其中成绩是一列数字,那么怎样给成绩划分等级?如下是划分等级的计算规则:

60分以下为E级60~69分为D级70~79分为C级80~89分为B级90分以上为A级

如下进行处理,简单起见,我挨个进行解释:

1. 导入pandas模块,读取excel文件

importpandasaspddf=pd.read_excel("成绩表.xlsx",sheet_name=0)

第一句导入了pandas模块,这是python的数据处理和统计分析的重要模块。

pd.read_excel可以读取excel的文件,sheet_name=0意思是读取第一个sheet表格的数据。

这个df非常重要,表达的就是一个表格数据。

2. 编写自己的根据成绩划分等级的函数

defgrade_to_level(grade):"""grade是成绩把这个Excel中的成绩,划分为A- E这五个分数区间。60分以下为E级、60~69分为D级、 70~79分为C级、80~89分为B级、90分以上为A级。"""ifgrade>=90:return"A"elifgrade>=80:return"B"elifgrade>=70:return"C"elifgrade>=60:return"D"else:return"E"

这个函数有个特点,输入的参数是grade,其实就是一个数字,而这个数字,是excel表格的“数字”这一列的每个值。

而这个函数的返回,就是这个数字划分后的等级,是5个字符串,A~E

注意,这个函数的输入是单个数字,输出是单个字符串。这个字符串将成为excel新列的每个值。

3. 给pandas的数据表df添加一个新列

df["等级"]=df["成绩"].apply(grade_to_level)

其中df["成绩"]意思是访问了当前excel的“成绩”这一列,这是一列数据,里面有很多数字。

df["成绩"].apply是在这个成绩列上调用的函数,而这个函数很神奇,会调用我们第2步骤自己写的 grade_to_level 函数。

这行代码执行的逻辑,是取出成绩列的每个成绩数字,传给grade_to_level函数的每个grade参数,得到结果是等级字符串。

而这些等级字符串串联在一起,形成了一个新的列。

这个新列和成绩列的行数一模一样相等,同时每个等级和每个成绩是一一对应的关系。

而等式左侧的df["等级"]则接收了这个结果的列。

最终这行代码实现了,成绩列被grade_to_level一一转换成了等级列。

4. 输出成结果excel文件

df.to_excel("成绩表分类后.xlsx",index=False)

这一列,将新的处理后的df,输出成一个excel文件,名字是 成绩表分类后.xlsx

如果不加index=False这个参数,那么输出的结果表格中,会多一列,里面是从0开始到1到一直递增的数字,无意义。所以一般都加上这个参数。

5. 最后的效果

输入文件截图:

输出文件结果:

6. 数据和代码地址

代码地址,自己粘贴到浏览器访问:

https://gitee.com/antpython/ant-codes-publish/tree/master/01pandas/01pandas%E7%BB%99%E6%88%90%E7%BB%A9%E5%88%86%E7%BA%A7%E5%88%AB

标签: 就是一个 非常重要 就是这个

最近更新

Pandas小技巧,给Excel添加一列,处理成绩数字的等级-环球微头条
2023-01-07 01:18:36
外汇市场分析:欧元、英镑及日元(1月6日)-世界新消息
2023-01-06 22:27:46
环球报道:保障数据安全有序跨境流动
2023-01-06 20:20:52
全球热头条丨意大利埃尼集团CEO呼吁在欧洲和非洲之间建立“南北能源轴”
2023-01-06 17:48:41
不能让智能电视机成为“套娃机” 焦点要闻
2023-01-06 16:49:59
2023福州城建设计研究院有限公司校园招聘需求专业-头条
2023-01-06 14:03:13
东方国信董秘回复:目前因疫情和季节原因在停工,后续复工后进入机电安装施工
2023-01-06 12:00:23
巴西新政府开启“团结与重建”之路 致力重返主要经济体行列
2023-01-05 14:42:27
1月4日基金净值:银河稳健混合最新净值2.3072,跌1.5% 世界头条
2023-01-05 12:57:42
退热贴平常可以用吗|环球热讯
2023-01-04 18:09:57
联翔股份(603272)1月4日主力资金净卖出164.55万元
2023-01-04 15:43:42
环球关注:华仁药业董秘回复:公司积极开拓国际业务,医用包材方面
2023-01-04 12:13:22
信息:新媒股份董秘回复:公司围绕“打造互联网新视听头部平台”的战略目标
2023-01-04 09:15:25
环球聚焦:每天吃素,大半年后血脂不减还患脂肪肝,到底咋回事?了解下
2023-01-04 03:47:18
每日视讯:嘉欣丝绸:公司前期从原料加工和后整理等技术方向入手研发抗菌面料,目前可以根据订单进行生产
2023-01-03 19:56:43
2023年哈尔滨太阳岛雪博会儿童冰雪季游玩攻略(时间+主题+游玩项目) 世界实时
2023-01-03 16:46:12
环球看点!中国海油:自上市以来,公司高度重视股东回报,坚持每年派发两次现金分红,积极与股东分享公司发展成果
2023-01-03 13:51:21
港股异动 | 康方生物-B(09926)升7%、创1年来新高 机构指AK112全球潜在市场空间极大、维持“买入”
2023-01-03 11:05:23
当前速看:接种新冠疫苗会影响抗原检测结果吗
2022-12-30 19:22:13
流金岁月:聚焦流媒体生态,科技助力超高清音视频产业快速发展 世界新消息
2022-12-30 16:39:41
世界视讯!信邦制药董秘回复:公司于2022年12月28日解除限售上市流通股票的发行价格为4.20 元/股
2022-12-30 11:39:39
2022年全球最美面孔出炉,肖战王一博持续入围,热巴势头坚挺
2022-12-30 08:15:58
兴化股份(002109.SZ):拟以9.95亿元收购榆神能化51%股权 环球热消息
2022-12-29 21:54:49
新疆超大型铅锌矿探矿权招标出让|全球快资讯
2022-12-29 18:44:13
倍加洁: 倍加洁关于注销2021年股票期权激励计划部分股票期权的公告-环球观天下
2022-12-29 17:01:04
异动快报:康恩贝(600572)12月29日13点13分触及涨停板 世界观察
2022-12-29 14:51:57
每日焦点!12月28日基金净值:景顺长城竞争优势混合最新净值0.8582,涨0.62%
2022-12-29 12:40:02
怎样挑柚子又好吃又甜 如何挑柚子又好吃又甜
2022-12-29 10:57:09
翡翠手镯戴时间久了有变化吗?这8个变化你知道吗
2022-12-28 18:50:40
中南传媒: 中南传媒2023年第一次临时股东大会会议资料_天天时讯
2022-12-28 15:46:02