版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
处理订单数据中的缺失值问题描述订单数据表如下表表2.1.1所示。表2.1.1订单数据表order_idquantityitem_namechoice_descriptionitem_price11ChipsandFreshTomatoSalsaNaN$2.3911Izze[Clementine]$3.3911NantucketNectar[Apple]$3.3911ChipsandTomatillo-GreenChiliSalsaNaN$2.39...............18341ChickenSaladBowl[FreshTomatoSalsa,[FajitaVegetables,Pinto...$11.2518341ChickenSaladBowl[FreshTomatoSalsa,[FajitaVegetables,Lettu...$8.7518341ChickenSaladBowl[FreshTomatoSalsa,[FajitaVegetables,Pinto...$8.75问题描述现要求根据订单数据表,统计订单表格中,商品描述(choice_description)中缺失值(为“NaN”)的数量,并将其批量替换为“banana”,并输出替换后的数据表以及缺失值的数量。输出结果表2.1.2替换为banana的订单数据表order_idquantityitem_namechoice_descriptionitem_price11ChipsandFreshTomatoSalsabanana$2.3911Izze[Clementine]$3.3911NantucketNectar[Apple]$3.3911ChipsandFreshTomatoSalsabanana$2.39...............18341ChickenSaladBowl[FreshTomatoSalsa,[FajitaVegetables,Pinto...$11.2518341ChickenSaladBowl[FreshTomatoSalsa,[FajitaVegetables,Lettu...$8.7518341ChickenSaladBowl[FreshTomatoSalsa,[FajitaVegetables,Pinto...$8.75【choice_description】为空值的数量为:1246题前思考表2.1.3问题分析问题描述问题解答怎样读取csv文件中的数据?如何统计数据中的缺失值的数量?
怎样将缺失值替换为指定数据?read_csv()
isnull(),query(),shapefillna()
统计缺失值数量,并替换为指定数据。importpandasaspdorder_data=pd.read_csv(r"D:\pydata\项目二\订单数据表.csv",encoding='utf-8')①num=order_data.query('choice_description.isnull()',engine='python').shape[0]②order_data.fillna({'choice_description':'banana'},inplace=True)③print(order_data)print("【choice_description】为空值的数量为:",num)程序代码程序代码importpandasaspdorder_data=pd.read_csv(r"D:\pydata\项目二\订单数据表.csv",encoding='utf-8')①num=order_data.query('choice_description.isnull()',engine='python').shape[0]order_data.fillna({'choice_description':'banana'},inplace=True)print(order_data)print("【choice_description】为空值的数量为:",num)read_csv()读取外部csv文件中的数据并将数据以数据框的形式保存到变量order_data。程序代码表2.1.4order_data内容order_idquantityitem_namechoice_descriptionitem_price11ChipsandFreshTomatoSalsaNaN$2.3911Izze[Clementine]$3.3911NantucketNectar[Apple]$3.3911ChipsandTomatillo-GreenChiliSalsaNaN$2.39...............18341ChickenSaladBowl[FreshTomatoSalsa,[FajitaVegetables,Pinto...$11.2518341ChickenSaladBowl[FreshTomatoSalsa,[FajitaVegetables,Lettu...$8.7518341ChickenSaladBowl[FreshTomatoSalsa,[FajitaVegetables,Pinto...$8.75程序代码importpandasaspdorder_data=pd.read_csv(r"D:\pydata\项目二\订单数据表.csv",encoding='utf-8')①num=order_data.query('choice_description.isnull()',engine='python').shape[0]order_data.fillna({'choice_description':'banana'},inplace=True)print(order_data)print("【choice_description】为空值的数量为:",num)计算'choice_description'列中空值的个数。将值存入变量num②1246程序代码importpandasaspdorder_data=pd.read_csv(r"D:\pydata\项目二\订单数据表.csv",encoding='utf-8')①num=order_data.query('choice_description.isnull()',engine='python').shape[0]order_data.fillna({'choice_description':'banana'},inplace=True)print(order_data)print("【choice_description】为空值的数量为:",num)isnull()判断”choice_description”列的值是否为空;得到一个与order_data.choice_description结构相同的逻辑值序列,若choice_description中某值为空,则该序列对应位置的值为True,反之为False②程序代码choice_description.isnull()调用结果如下0True1False2False3True4False...4617False4618False4619False4620False4621FalseName:choice_description,Length:4622,dtype:bool程序代码importpandasaspdorder_data=pd.read_csv(r"D:\pydata\项目二\订单数据表.csv",encoding='utf-8')①num=order_data.query('choice_description.isnull()',engine='python').shape[0]order_data.fillna({'choice_description':'banana'},inplace=True)print(order_data)print("【choice_description】为空值的数量为:",num)query()'会选择上述结果中值为True的数据行构成一个数据框,即选择'choice_description'列值为空的行。②程序代码order_idquantityitem_namechoice_descriptionitem_price11ChipsandFreshTomatoSalsaNaN$2.3911ChipsandTomatillo-GreenChiliSalsaNaN$2.3931SideofChipsNaN$1.6951ChipsandGuacamoleNaN$4.45...............18281ChipsandGuacamoleNaN$4.4518311ChipsNaN$2.1518311BottledWaterNaN$1.5018321ChipsandGuacamoleNaN$4.45表2.1.5'choice_description'列值为空的行程序代码importpandasaspdorder_data=pd.read_csv(r"D:\pydata\项目二\订单数据表.csv",encoding='utf-8')①num=order_data.query('choice_description.isnull()',engine='python').shape[0]order_data.fillna({'choice_description':'banana'},inplace=True)print(order_data)print("【choice_description】为空值的数量为:",num)shape[0]表示数据框的行数,也就是'choice_description'列中空值的个数。shape表示数据框的形状,此处的数据框是一个二维表,shape就表示它的行列数,shape[0]表示行数,shape[1]表示列数②程序代码importpandasaspdorder_data=pd.read_csv(r"D:\pydata\项目二\订单数据表.csv",encoding='utf-8')①num=order_data.query('choice_description.isnull()',engine='python').shape[0]order_data.fillna({'choice_description':'banana'},inplace=True)③print(order_data)print("【choice_description】为空值的数量为:",num)②
使用fillna()方法将“choice_description”列的缺失值替换为“banana”;inplace=True,表示在源数据上进行修改。程序代码替换后的数据表order_idquantityitem_namechoice_descriptionitem_price11ChipsandFreshTomatoSalsabanana$2.3911Izze[Clementine]$3.3911NantucketNectar[Apple]$3.3911ChipsandFreshTomatoSalsabanana$2.39...............18341ChickenSaladBowl[FreshTomatoSalsa,[FajitaVegetables,Pinto...$11.2518341ChickenSaladBowl[FreshTomatoSalsa,[FajitaVegetables,Lettu...$8.7518341ChickenSaladBowl[FreshTomatoSalsa,[FajitaVegetables,Pinto...$8.75任务小结1.isnull(),找出含有空值(NaN)的数据行2.query(),查询DataFrame的列3.fillna(),填充缺失数据4.replace(),替换为指定值
order_data.fillna({'choice_description':'banana'},inplace=True)
order_data.replace(np.NaN,'banana',inplace=True)5.
dropna()删除缺失的值(行或列)。一展身手仍然对订单数据表进行数据处理,替换数据表中的缺失值。要求用该缺失值的下面一个非缺失值填充。请用fillna()方法完成指定的操作。效果如下表所示。choice_description[Clementine][Clementine][Apple][Tomatillo-RedChiliSalsa(Hot),[BlackBeans...[Tomatillo-RedChiliSalsa(Hot),[BlackBeans...order_idquantityitem_namechoice_descriptionitem_price11ChipsandFreshTomatoSalsaNaN$2.3911Izze[Clementine]$3.3911NantucketNectar[Apple]$3.3911ChipsandTomatillo-GreenChiliSalsa[Tomatillo-RedChiliSalsa(Hot),[BlackBeans...$2.3922ChickenBowl[Tomatillo-RedChiliSalsa(Hot),[BlackBeans...$16.98填充后制作团队制作:赵若馨重庆市九龙坡职业教育中心处理乐高天猫店销售数据中的重复值主讲人:赵若馨重庆市九龙坡职业教育中心问题描述乐高天猫店的销售数据如表2.1.8所示。表2.1.8乐高天猫店销售数据表titleage_rangepricesales_numcomment_num乐高旗舰店官网LEGO积木儿童玩具男孩积木拼装玩具益智NaN99.00-899.00217.02278.0乐高旗舰店官网机械组赛车拼装积木玩具成年高难度送礼收藏车模NaN99.00-3799.0091.01681.0乐高旗舰店官网2020年新品益智拼搭积木男女孩益智玩具送礼收藏NaN299.00-2499.0042.0194.0乐高旗舰店官网好朋友迪士尼公主系列积木玩具女孩儿童益智送礼NaN199.00-999.00177.0345.0...............乐高旗舰店官网2020年新品10269哈雷戴维森?肥仔?摩托车成人收藏NaNNaN276.0509.0乐高哈利波特系列霍格沃茨城堡71043成人收藏适用年龄范围:16+岁3999138.0512.0乐高哈利波特系列霍格沃茨城堡71043成人收藏适用年龄范围:16+岁3999138.0512.0393rows×5columns备注:观察此时的数据表,行列数为:393行
×5列问题描述在进行数据分析时,发现表中有许多重复的数据,影响了分析结果,现要求将数据表中的重复值删掉。输出结果表2.1.9删除重复值后的乐高天猫店销售数据表titleage_rangepricesales_numcomment_num乐高旗舰店官网LEGO积木儿童玩具男孩积木拼装玩具益智NaN99.00-899.00217.02278.0乐高旗舰店官网机械组赛车拼装积木玩具成年高难度送礼收藏车模NaN99.00-3799.0091.01681.0乐高旗舰店官网2020年新品益智拼搭积木男女孩益智玩具送礼收藏NaN299.00-2499.0042.0194.0乐高旗舰店官网好朋友迪士尼公主系列积木玩具女孩儿童益智送礼NaN199.00-999.00177.0345.0...............乐高旗舰店官网6月新品机械组42107杜卡迪DucatiPanigaleV4RNaNNaN80.01.0乐高旗舰店官网2020年新品10269哈雷戴维森?肥仔?摩托车成人收藏NaNNaN276.0509.0乐高哈利波特系列霍格沃茨城堡71043成人收藏适用年龄范围:16+岁3999138.0512.0375rows×5columns备注:删除重复数据行后,数据表的行数减少了18条,变为374行
×5列题前思考表2.1.10问题分析问题描述问题解答用什么方法查找重复数据?怎样把数据表中重复的值删除?
duplicated()drop_duplicates()统计并删除重复数据。importpandasaspddata=pd.read_csv(r"D:\pydata\项目二\乐高天猫店销售数据.csv",sep=",",encoding='gb2312')print(data[data.duplicated()])data.drop_duplicates(keep="first",inplace=True)print(data)程序代码程序代码importpandasaspddata=pd.read_csv(r"D:\pydata\项目二\乐高天猫店销售数据.csv",sep=",",encoding='gb2312')①print(data[data.duplicated()])②data.drop_duplicates(keep="first",inplace=True)③print(data)read_csv()读取外部csv文件中的数据并将数据以数据框的形式保存到变量data。程序代码表2.1.11data内容titleage_rangepricesales_numcomment_num乐高旗舰店官网LEGO积木儿童玩具男孩积木拼装玩具益智NaN99.00-899.00217.02278.0乐高旗舰店官网机械组赛车拼装积木玩具成年高难度送礼收藏车模NaN99.00-3799.0091.01681.0乐高旗舰店官网2020年新品益智拼搭积木男女孩益智玩具送礼收藏NaN299.00-2499.0042.0194.0乐高旗舰店官网好朋友迪士尼公主系列积木玩具女孩儿童益智送礼NaN199.00-999.00177.0345.0...............乐高旗舰店官网2020年新品10269哈雷戴维森?肥仔?摩托车成人收藏NaNNaN276.0509.0乐高哈利波特系列霍格沃茨城堡71043成人收藏适用年龄范围:16+岁3999138.0512.0乐高哈利波特系列霍格沃茨城堡71043成人收藏适用年龄范围:16+岁3999138.0512.0393rows×5columns程序代码importpandasaspddata=pd.read_csv(r"D:\pydata\项目二\乐高天猫店销售数据.csv",sep=",",encoding='gb2312')①print(data[data.duplicated()])②data.drop_duplicates(keep="first",inplace=True)③print(data)输出重复的行程序代码importpandasaspddata=pd.read_csv(r"D:\pydata\项目二\乐高天猫店销售数据.csv",sep=",",encoding='gb2312')①print(data[data.duplicated()])②data.drop_duplicates(keep="first",inplace=True)③print(data)data.duplicated()会对数据框的行从上往下依次扫描,如果某行与前面的行相同,则该行标示为True,反之标示为False,最后返回由这些逻辑值组成的序列程序代码调用结果如下0False1False2False3False4False...388False389False390False391False392TrueLength:393,dtype:bool程序代码importpandasaspddata=pd.read_csv(r"D:\pydata\项目二\乐高天猫店销售数据.csv",sep=",",encoding='gb2312')①print(data[data.duplicated()])②data.drop_duplicates(keep="first",inplace=True)③print(data)data[data.duplicated()]用data.duplicated()返回的逻辑值序列从data中选择数据行,若某行的值为True则该行会被选出,即重复值被选出程序代码表2.1.11重复数据行titleage_rangepricesales_numcomment_num乐高哈利波特系列霍格沃茨城堡71043成人收藏适用年龄范围:16+岁3999139.0511.0乐高哈利波特系列霍格沃茨城堡71043成人收藏适用年龄范围:16+岁3999134.0511.0……………乐高旗舰店官网10874智能蒸汽火车遥控轨道大颗粒益智积木玩具适用年龄范围:2-5岁549807.02884.0乐高旗舰店官网10874智能蒸汽火车遥控轨道大颗粒益智积木玩具适用年龄范围:2-5岁549807.02884.0乐高旗舰店官网幻影忍者系列71699雷霆突击战车适用年龄8岁+499548.0325.0乐高哈利波特系列霍格沃茨城堡71043成人收藏适用年龄范围:16+岁3999139.0511.0乐高哈利波特系列霍格沃茨城堡71043成人收藏适用年龄范围:16+岁3999134.0511.0程序代码importpandasaspddata=pd.read_csv(r"D:\pydata\项目二\乐高天猫店销售数据.csv",sep=",",encoding='gb2312')①print(data[data.duplicated()])②data.drop_duplicates(keep="first",inplace=True)③print(data)用drop_duplicates()方法删除数据表中的重复数据。Keep参数用于指定删除的条件,这里“first”表示保留第一次出现的重复项,删除后面的重复项。inplace=True表示对原数据进行修改任务小结1.Duplicated(),提取标记重复值。2.drop_duplicates(),删除重复数据
参数:keep
:
{'first','last',False},默认'first'first
:保留第一次出现的重复项,删除后面的重复项。last
:
删除重复项,除了最后一次出现。False:删除所有重复项一展身手请自己创建数据表,如表2.1.13所示。ABCD1231042126521231表2.1.13测试数据表一展身手请使用drop_duplicates()方法,按以下要求删除表中的重复值。1.以A列判断标准,删除测试数据表中重复项,保留最后一次出现的重复行,效果如表2.1.14所示。ABCD042126521231表2.1.14删除重复项的测试数据表一展身手2.以“D”列为标准,删除重复项,保留第一次出现的重复行,效果如下表表2.1.13所示。ABCD1231表2.1.13删除重复项的测试数据表制作团队制作:赵若馨重庆市九龙坡职业教育中心规范化学生考试成绩主讲人:赵若馨重庆市九龙坡职业教育中心问题描述某学期19级秋高计1班C语言成绩如表2.2.1所示。表2.2.119级秋高计1班C语言成绩表序号姓名学号3月5月技能成绩期末技能1皮朝峰2019DS11012040582潘红2019DS11106060603桑超2019DS11115530604屠星2019DS1112缺考4260..................44陈成浩2019DS1147缺考缺考6045齐小东2019DS1105缺考446046陶姣姣2019DS110960306047涂德燕2019DS1147555660问题描述现要求将学生成绩表规范化处理,将显示为“缺考”的成绩改为“0”;并将所有成绩映射为百分制。输出结果表2.2.2转换后成绩表序号姓名学号3月5月技能成绩期末技能1皮朝峰2019DS110133.3366.6796.672潘红2019DS1110100.00100.00100.003桑超2019DS111191.6750.00100.004屠星2019DS11120.0070.00100.00..................44陈成浩2019DS11470.000.00100.0045齐小东2019DS11050.0073.33100.0046陶姣姣2019DS1109100.0050.00100.0047涂德燕2019DS114791.6793.33100.00题前思考表2.2.3问题分析问题描述问题解答如何将其他分制的数据转换为百分制?将某些数值替换为指定数值的方法有哪些?
n/60*100replace()规范化学生考试成绩。importpandasaspddata=pd.read_excel(r"D:\pydata\项目二\19秋高计1班C语言平时成绩技能成绩.xlsx")①data.replace("缺考",0,inplace=True)②data["3月"]=round(data["3月"]/60*100,2)③data["5月技能成绩"]=round(data["5月技能成绩"]/60*100,2)③data["期末技能"]=round(data["期末技能"]/60*100,2)⑤print(data)程序代码程序代码importpandasaspddata=pd.read_excel(r"D:\pydata\项目二\19秋高计1班C语言平时成绩技能成绩.xlsx")①data.replace("缺考",0,inplace=True)②data["3月"]=round(data["3月"]/60*100,2)③data["5月技能成绩"]=round(data["5月技能成绩"]/60*100,2)③data["期末技能"]=round(data["期末技能"]/60*100,2)⑤print(data)read_excel()读取外部excel文件中的数据并将数据以数据框的形式保存到变量data。程序代码importpandasaspddata=pd.read_excel(r"D:\pydata\项目二\19秋高计1班C语言平时成绩技能成绩.xlsx")①data.replace("缺考",0,inplace=True)②data["3月"]=round(data["3月"]/60*100,2)③data["5月技能成绩"]=round(data["5月技能成绩"]/60*100,2)③data["期末技能"]=round(data["期末技能"]/60*100,2)⑤print(data)使用replace()函数将表中“缺考”替换为0;inplace=True,直接在原数据上进行修改。程序代码表2.2.4“缺考”转换为0的成绩表序号姓名学号3月5月技能成绩期末技能1皮朝峰2019DS11012040582潘红2019DS11106060603桑超2019DS11115530604屠星2019DS111204260..................44陈成浩2019DS1147006045齐小东2019DS11050446046陶姣姣2019DS110960306047涂德燕2019DS1147555660程序代码importpandasaspddata=pd.read_excel(r"D:\pydata\项目二\19秋高计1班C语言平时成绩技能成绩.xlsx")①data.replace("缺考",0,inplace=True)②data["3月"]=round(data["3月"]/60*100,2)③data["5月技能成绩"]=round(data["5月技能成绩"]/60*100,2)③data["期末技能"]=round(data["期末技能"]/60*100,2)⑤print(data)将“3月”列的成绩转换为百分制成绩,并四舍五入保留两位小数。最后再将结果保存到data["3月"]这一列程序代码importpandasaspddata=pd.read_excel(r"D:\pydata\项目二\19秋高计1班C语言平时成绩技能成绩.xlsx")①data.replace("缺考",0,inplace=True)②data["3月"]=round(data["3月"]/60*100,2)③data["5月技能成绩"]=round(data["5月技能成绩"]/60*100,2)③data["期末技能"]=round(data["期末技能"]/60*100,2)⑤print(data)使用数学公式,将60分制成绩转换为百分制成绩程序代码importpandasaspddata=pd.read_excel(r"D:\pydata\项目二\19秋高计1班C语言平时成绩技能成绩.xlsx")①data.replace("缺考",0,inplace=True)②data["3月"]=round(data["3月"]/60*100,2)③data["5月技能成绩"]=round(data["5月技能成绩"]/60*100,2)③data["期末技能"]=round(data["期末技能"]/60*100,2)⑤print(data)再使用Python内置函数round()将所有数值四舍五入保留2位小数程序代码表2.2.5“3月”列转换成百分制序号姓名学号3月5月技能成绩期末技能1皮朝峰2019DS110133.3340582潘红2019DS1110100.0060603桑超2019DS111191.6730604屠星2019DS11120.004260..................44陈成浩2019DS11470.0006045齐小东2019DS11050.00446046陶姣姣2019DS1109100.00306047涂德燕2019DS114791.675660程序代码importpandasaspddata=pd.read_excel(r"D:\pydata\项目二\19秋高计1班C语言平时成绩技能成绩.xlsx")①data.replace("缺考",0,inplace=True)②data["3月"]=round(data["3月"]/60*100,2)③data["5月技能成绩"]=round(data["5月技能成绩"]/60*100,2)④data["期末技能"]=round(data["期末技能"]/60*100,2)⑤print(data)④⑤与③方法一样。将“5月技能成绩”和[“期末技能”两列成绩转化为百分制,四舍五入保留两位小数。程序代码再次打印data序号姓名学号3月5月技能成绩期末技能1皮朝峰2019DS110133.3366.6796.672潘红2019DS1110100.00100.00100.003桑超2019DS111191.6750.00100.004屠星2019DS11120.0070.00100.00..................44陈成浩2019DS11470.000.00100.0045齐小东2019DS11050.0073.33100.0046陶姣姣2019DS1109100.0050.00100.0047涂德燕2019DS114791.6793.33100.00任务小结1.replace()将数据替换为指定值2.用数学公式进行数值转换:n/60*1003.round()将数值四舍五入保留x位小数一展身手仍然对C语言成绩表进行操作,要求对缺考成绩进行替换,替换方式为用成绩表中“缺考”的前一个值替换,将成绩转换为120分制。结果如右表所示。序号姓名学号3月5月技能成绩期末技能1皮朝峰2019DS110140.080.0116.02潘红2019DS1110120.0120.0120.03桑超2019DS1111110.060.0120.04屠星2019DS1112110.084.0120.0..................44陈成浩2019DS1147120.0112.0120.045齐小东2019DS1105120.088.0120.046陶姣姣2019DS1109120.060.0120.047涂德燕2019DS1147110.0112.0120.0制作团队制作:赵若馨重庆市九龙坡职业教育中心为优秀学生评奖主讲人:赵若馨重庆市九龙坡职业教育中心问题描述学校将2018级高职班各专业学生某次联考成绩进行了整理汇总,形成“高职班学生成绩”工作薄。工作簿中包含三个工作表:“划线标准”、“培优名单”、“全部学生名单”。其中,“全部学生名单”如右表所示表2.2.7全部学生名单表专业类别姓名联考文化总分入学考文化总分文化平均联考专业总分入学考专业总分专业平均班级计算机类莫永生266.5技能大赛266.50399.00.0399.002018级秋电商3班计算机类屈超226.0222224.00410.0426.0418.002018级秋电商3班计算机类闵小芳213.0214213.50349.0369.0359.002018级秋电商3班计算机类邹永婷138.0109.5123.75283.0125.5204.252018春电商7班..................汽车类姜攀165.0082.50267.0231.0249.002018级汽车春1班汽车类申杨霞85.08082.50148.0280.0214.002018级汽车春1班汽车类左娟84.07780.50308.0192.0250.002018级汽车春1班汽车类冉滔0.0151.575.75180.0260.0220.002018级汽车春1班问题描述现要求根据“联考文化总分”和“联考专业总分”的总成绩对高职班全部学生进行评奖,即将分数转换成等级奖。输出结果表2.2.8转换为等级奖后的全部学生名单表专业类别姓名联考文化总分入学考文化总分文化平均联考专业总分入学考专业总分专业平均班级等级奖计算机类莫永生266.5技能大赛266.50399.00.0399.002018级秋电商3班一等计算机类屈超226.0222224.00410.0426.0418.002018级秋电商3班一等计算机类闵小芳213.0214213.50349.0369.0359.002018级秋电商3班一等计算机类邹永婷138.0109.5123.75283.0125.5204.252018春电商7班二等..............................汽车类姜攀165.0082.50267.0231.0249.002018级汽车春1班二等汽车类申杨霞85.08082.50148.0280.0214.002018级汽车春1班三等汽车类左娟84.07780.50308.0192.0250.002018级汽车春1班二等汽车类冉滔0.0151.575.75180.0260.0220.002018级汽车春1班三等题前思考表2.2.9问题分析问题描述问题解答怎样选取指定项并求和?怎样将分数转化为等级奖?
Loc,apply()pandas.cut()为优秀学生评奖。importpandasaspdimportnumpyasnpdata=pd.read_excel(r"D:\pydata\项目二\高职班学生成绩.xlsx",sheet_name="全部学生名单")①data["联考总分"]=data.loc[:,["联考专业总分","联考文化总分"]].apply(np.sum,axis=1)②data["等级奖"]=pd.cut(data["联考总分"],bins=3,labels=["三等","二等","一等"])③print(data)程序代码程序代码importpandasaspdimportnumpyasnpdata=pd.read_excel(r"D:\pydata\项目二\高职班学生成绩.xlsx",sheet_name="全部学生名单")①data["联考总分"]=data.loc[:,["联考专业总分","联考文化总分"]].apply(np.sum,axis=1)②data["等级奖"]=pd.cut(data["联考总分"],bins=3,labels=["三等","二等","一等"])③print(data)read_excel()读取“高职班学生成绩.xlsx”工作簿中的“全部学生名单”工作表。参数sheet_name指定工作簿中要读取的工作表名称,并将数据以数据框的形式保存到变量data。程序代码importpandasaspdimportnumpyasnpdata=pd.read_excel(r"D:\pydata\项目二\高职班学生成绩.xlsx",sheet_name="全部学生名单")①data["联考总分"]=data.loc[:,["联考专业总分","联考文化总分"]].apply(np.sum,axis=1)②data["等级奖"]=pd.cut(data["联考总分"],bins=3,labels=["三等","二等","一等"])③print(data)求联考总分。程序代码importpandasaspdimportnumpyasnpdata=pd.read_excel(r"D:\pydata\项目二\高职班学生成绩.xlsx",sheet_name="全部学生名单")①data["联考总分"]=data.loc[:,["联考专业总分","联考文化总分"]].apply(np.sum,axis=1)②data["等级奖"]=pd.cut(data["联考总分"],bins=3,labels=["三等","二等","一等"])③print(data)选取"联考专业总分"和"联考文化总分"列所有行的数据;其中“:”代表所有行。程序代码表2.2.10选取列"联考专业总分"和"联考文化总分"列联考专业总分联考文化总分399.0266.5410.0226.0349.0213.0283.0138.0......267.0165.0148.085.0308.084.0180.00.0程序代码importpandasaspdimportnumpyasnpdata=pd.read_excel(r"D:\pydata\项目二\高职班学生成绩.xlsx",sheet_name="全部学生名单")①data["联考总分"]=data.loc[:,["联考专业总分","联考文化总分"]].apply(np.sum,axis=1)②data["等级奖"]=pd.cut(data["联考总分"],bins=3,labels=["三等","二等","一等"])③print(data)对选出来的列求和。apply()函数自动遍历数据框的每一行,并且对这些数据执行np.sum()函数求和("联考专业总分"和,"联考文化总分"两列数据求和),将计算结果作为一个序列返回,其中axis=1表示把一行数据作为序列传递给np.sum()作为参数求和。最后将返回的数据存入data[“联考总分”],添加到数据最后一列程序代码表2.2.11添加“联考总分”列专业类别姓名联考文化总分入学考文化总分文化平均联考专业总分入学考专业总分专业平均班级联考总分计算机类莫永生266.5技能大赛266.50399.00.0399.002018级秋电商3班665.5计算机类屈超226.0222224.00410.0426.0418.002018级秋电商3班636.0计算机类闵小芳213.0214213.50349.0369.0359.002018级秋电商3班562.0计算机类邹永婷138.0109.5123.75283.0125.5204.252018春电商7班421.0..............................汽车类姜攀165.0082.50267.0231.0249.002018级汽车春1班432.0汽车类申杨霞85.08082.50148.0280.0214.002018级汽车春1班233.0汽车类左娟84.07780.50308.0192.0250.002018级汽车春1班392.0汽车类冉滔0.0151.575.75180.0260.0220.002018级汽车春1班180.0程序代码importpandasaspdimportnumpyasnpdata=pd.read_excel(r"D:\pydata\项目二\高职班学生成绩.xlsx",sheet_name="全部学生名单")①data["联考总分"]=data.loc[:,["联考专业总分","联考文化总分"]].apply(np.sum,axis=1)②data["等级奖"]=pd.cut(data["联考总分"],bins=3,labels=["三等","二等","一等"])③print(data)cut()把data[“联考总分”]数据分割成3个不同的分数段并打上等级标签,其中bins用来指定分割的区间个数,labels用于指定对应区间的等级。最后将返回的数据存入data[“等级奖”],添加到数据最后一列程序代码再次打印data专业类别姓名联考文化总分入学考文化总分文化平均联考专业总分入学考专业总分专业平均班级联考总分等级奖计算机类莫永生266.5技能大赛266.50399.00.0399.002018级秋电商3班665.5一等计算机类屈超226.0222224.00410.0426.0418.002018级秋电商3班636.0一等计算机类闵小芳213.0214213.50349.0369.0359.002018级秋电商3班562.0一等计算机类邹永婷138.0109.5123.75283.0125.5204.252018春电商7班421.0二等.................................汽车类姜攀165.0082.50267.0231.0249.002018级汽车春1班432.0二等汽车类申杨霞85.08082.50148.0280.0214.002018级汽车春1班233.0三等汽车类左娟84.07780.50308.0192.0250.002018级汽车春1班392.0二等汽车类冉滔0.0151.575.75180.0260.0220.002018级汽车春1班180.0三等任务小结loc:用loc属性切片,从DataFrame中选取相关的数据行或列2.apply():自动遍历DataFrame每一行或一列的数据,并且对这些数据执行某个函数3.cut():把数据分割成离散的值,将求得的联考总分转换成等级一展身手对高职班全部学生成绩表进行统计,要求根据表中”专业平均”进行评优,将专业平均成绩转化为“优、良、中、差”。专业课的总分为450分,按总分的80%、70%、60%划分分数段,(-1,269]为差,(269,314]为中,(314,359]为良,(359,450]为优。结果如下表所示。一展身手专业类别姓名联考文化总分入学考文化总分文化平均联考专业总分入学考专业总分专业平均班级等级奖计算机类莫永生266.5技能大赛266.50399.00.0399.002018级秋电商3班优计算机类屈超226.0222224.00410.0426.0418.002018级秋电商3班优计算机类闵小芳213.0214213.50349.0369.0359.002018级秋电商3班良计算机类邹永婷138.0109.5123.75283.0125.5204.252018春电商7班差..............................汽车类姜攀165.0082.50267.0231.0249.002018级汽车春1班差汽车类申杨霞85.08082.50148.0280.0214.002018级汽车春1班差汽车类左娟84.07780.50308.0192.0250.002018级汽车春1班差汽车类冉滔0.0151.575.75180.0260.0220.002018级汽车春1班差制作团队制作:赵若馨重庆市九龙坡职业教育中心规范化成绩表标题主讲人:赵若馨重庆市九龙坡职业教育中心问题描述学校对各专业培优班学生某学年联考成绩进行了汇总,成绩如右表表2.2.15培优班学生成绩表zylbxmwh1wh2wh_pjfzy1zy2zy_pjfbj电子技术类于瑶254.5246250.25136.0176.0156.002018级机电9班电子技术类魏快218.5231224.75144.0152.0148.002018级机电9班电子技术类乔蕊君210.5213211.75130.0140.0135.002018级机电9班会计类车星268.0264266.00419.0338.0378.502018级电商2班..................旅游类宗子文169.5149159.25322.00.0322.002018春航旅6班旅游类隆雪176.0142159.00353.00.0353.002018级秋航3班旅游类乔峻冬142.0172157.00339.00.0339.002018春航旅6班旅游类岑志豪167.0144155.50295.0326.0310.502018级秋航旅2班问题描述由于统计人员不认真,将成绩表列标题用拼音缩写表示,不利于后期进行查阅和分析,现要求规范化成绩表列标题,将列标题修改为中文。并调整列顺序,将第一列(“专业类”列)移动到第五列(“文化平均”列)后面。输出结果表2.2.16规范化学生成绩表姓名文化1文化2文化平均专业类专业1专业2专业平均班级于瑶254.5246250.25电子技术类136.0176.0156.002018级机电9班魏快218.5231224.75电子技术类144.0152.0148.002018级机电9班乔蕊君210.5213211.75电子技术类130.0140.0135.002018级机电9班车星268.0264266.00会计类419.0338.0378.502018级电商2班...........................宗子文169.5149159.25旅游类322.00.0322.002018春航旅6班隆雪176.0142159.00旅游类353.00.0353.002018级秋航3班乔峻冬142.0172157.00旅游类339.00.0339.002018春航旅6班岑志豪167.0144155.50旅游类295.0326.0310.502018级秋航旅2班题前思考表2.2.17问题分析问题描述问题解答怎样修改成绩表列标题?如何调整列索引的顺序?
DataFrame.columnsdata.drop(),insert()规范化成绩表标题importpandasaspddata=pd.read_excel(r"D:\pydata\项目二\培优班学生成绩表.xlsx")①data.columns=["专业类","姓名","文化1","文化2","文化平均","专业1","专业2","专业平均","班级"]②major=data['专业类']③data=data.drop(["专业类"],axis=1)④data.insert(4,"专业类",major)⑤print(data)程序代码程序代码importpandasaspddata=pd.read_excel(r"D:\pydata\项目二\培优班学生成绩表.xlsx")①data.columns=["专业类","姓名","文化1","文化2","文化平均","专业1","专业2","专业平均","班级"]②major=data['专业类']③data=data.drop(["专业类"],axis=1)④data.insert(4,"专业类",major)⑤print(data)read_excel()使用read_excel()读取数据保存到变量data程序代码importpandasaspddata=pd.read_excel(r"D:\pydata\项目二\培优班学生成绩表.xlsx")①data.columns=["专业类","姓名","文化1","文化2","文化平均","专业1","专业2","专业平均","班级"]②major=data['专业类']③data=data.drop(["专业类"],axis=1)④data.insert(4,"专业类",major)⑤print(data)通过对data.columns属性赋值修改索引标签即列标题程序代码表2.2.18修改后的列索引专业类姓名文化1文化2文化平均专业1专业2专业平均班级电子技术类于瑶254.5246250.25136.0176.0156.002018级机电9班电子技术类魏快218.5231224.75144.0152.0148.002018级机电9班电子技术类乔蕊君210.5213211.75130.0140.0135.002018级机电9班会计类车星268.0264266.00419.0338.0378.502018级电商2班..................旅游类宗子文169.5149159.25322.00.0322.002018春航旅6班旅游类隆雪176.0142159.00353.00.0353.002018级秋航3班旅游类乔峻冬142.0172157.00339.00.0339.002018春航旅6班旅游类岑志豪167.0144155.50295.0326.0310.502018级秋航旅2班程序代码importpandasaspddata=pd.read_excel(r"D:\pydata\项目二\培优班学生成绩表.xlsx")①data.columns=["专业类","姓名","文化1","文化2","文化平均","专业1","专业2","专业平均","班级"]②major=data['专业类']③data=data.drop(["专业类"],axis=1)④data.insert(4,"专业类",major)⑤print(data)data['专业类'],使用列索引获取“专业类”列所有数据,并将结果保存到变量major中程序代码major序列的值如下所示0电子技术类1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初中政治讲课课件
- 厂长作用分析课件
- 初中制取氧气的课件
- 屋面工程质量验收规范
- 初中主持课课件
- 七年级心理健康《情绪脸谱》教学设计
- 初中八年级物理教学设计:速度计算的模型构建与核心素养培育
- 高三冲刺期主题班会教学设计:倒计时26天把每一天过成提分点
- 小学三年级心理健康《防止上当受骗》教学设计
- 高中一年级生物“生物的多样性和适应性是进化的结果”教学设计
- 支模架施工方案
- 自然资源资产生态价值核算技术指南(试行)
- 2025年低温等离子灭菌器操作试题及答案
- 2026陕西投资集团高校毕业生春季校园招聘备考题库及答案详解(夺冠系列)
- 2026年北邮全校教职工人工智能素养培训分类分层发展体系
- 粤政易使用规范制度
- 山东省德州市2025-2026学年高一上学期期中考试生物试卷(含答案)
- 碳十醇酮团体标准
- DB52∕T 1816-2024 机械发泡温拌沥青混合料施工技术规范
- 钢梁步履式顶推技术规范
- 大数据与财务管理专业教学标准(高等职业教育专科)2025修订
评论
0/150
提交评论