给大家分享一个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的非常小的技巧知识点。怎样给一个Excel添加一列,这一列是根据其它列的数字计算出来的。问题定义问题是这样的
白水县的女工们正在包装特产苹果。开栏的话孕育生机与活力的新春渐行渐近,令人满怀期待。为鲜活反映基层群众工作生活的点滴变化和切身感受,
多家港股上市企业稳定价格期间结束开启新一轮价值成长周期2023年01月05日16:54中国网财经
四川经济网德阳讯(记者刘金蓉)1月6日上午,德阳市公安局交通警察支队举行春运启动仪式,以“平安春运交警同行”为主题,打响春运“保卫战”
澳大利亚网球公开赛网站显示,中国选手张之臻已经入围2023年正赛参赛名单。据统计,这是中国大陆男网球员自公开赛年代以来首次通过排名直接进
2023佛山旅游路线推荐:一、游玩路线路线1:祖庙街区品美食——祖庙——岭南天地——南风古灶——创意产业园路线2:国艺影视城——九江双蒸博
蒙草生态(300355)01月06日在投资者关系平台上答复了投资者关心的问题。
2023年伊始,延续了13年的新能源汽车“国补”正式退出了历史舞台。然而,各家车企在“断奶”后的应对方式却各不相同,形成了涨价、降价、保价
1月4日国有大型银行板块较上一交易日上涨1 17%,邮储银行领涨。当日上证指数报收于3123 52,上涨0 22%。深证成指报收于11095 37,下跌0 2%。国
1、产生罚息这是金钱上的损失。如果信用贷款出现逾期,贷款机构会先电话催收贷款,提醒借款人还款,同时利率还会上浮,作为每天的罚息。虽然每