欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    Python数据分析与可视化教案4.3 数据的分组与分段.docx

    • 资源ID:63283440       资源大小:30.32KB        全文页数:6页
    • 资源格式: DOCX        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Python数据分析与可视化教案4.3 数据的分组与分段.docx

    课 题4.3数据的分组与分段课 型讲练授课班级大数据授课时数2教学目标1 .能够将数据按照指定列分组并汇总统计。2 .能够将数据按指定列进行数据分段。教学重点1 .能够将数据按照指定列分组并汇总统计。2 .能够将数据按指定列进行数据分段。教学难点1 .能够将数据按照指定列分组并汇总统计。2 .能够将数据按指定列进行数据分段。学情分析本次课有一定难度,数据的分组统计是数据分析的一种常用的方法,这 种方法类似于Excel的分类汇总,仅仅分组是很不出任何结果的,只有统计 后才能看到结果,而数据分段有点类似于Excel的if函数嵌套进行数据分 组。充分理解Excel的分类汇总和if函数有助于本次课的学习。在数据分析时,对数据进行分组和分段是常用的一种操作,通过分组和分段可以 挖掘出更多数据的内在信息。数据分组的作用是可以快速对所有分组进行统计计算, 比方计算男女学生的平均成绩时,可以先按性别分组,然后再按成绩统计各组的平均 数。数据分段作用在于可以将连续的数据离散化,比方将成绩分为不同的成绩等级, 将年龄分为不同的年龄段,这样就可以通过不同数据段的统计分析挖掘出一些更加有 用的信息。一、数据分组统计分析分组是指将DataFrame按照某列划分为多个不同的组,然后再按另外一列计算每 组的一些统计指标,这一点类似于Excel的分类汇总,分组统计时只要确定分组字段、 统计字段和统计方法就可以执行。1 .数据分组pandas提供了一个灵活高效的groupby函数,通过groupby函数可以对DataFrame 进行分组操作,进而再对每一组进行统计分析,如计算最大值、最小值、平均值、中 位数等。(1)按某列对DataFrame进行分组通过groupby函数执行分组操作,只会返回一个GroupBy对象,该对象实际上并 没有进行任何的计算,其仅仅是中间数据。groupby函数的一般用法为:DataFrame.groupby(by =分组歹(J)其中,by表示分组的列,即DataFrame按照这一列进行分组,但是其结果只是 一个中间数据,不产生任何的统计结果。例如代码如下:import numpy as npimport pandas as pdarr = np.arange( 1,17).reshape(4,4)data = pd.DataFrame(arr,columns=,aVb,'c7d,)datafe1 =print("初始数据为:n'data)group = data.groupby(by='e')print("按e列分组的结果为:group)print("分组结果的类型为:",type(group)输出结果如图4-*所示。Run:4-3AC:UsersliliangAnaconda3python.exe C:/Users/liliang/PycharmProjects/sjfx/4-3.py初始数据为:a b c d e501234A过 15678 B29 10 11 12 B3 13 14 15 16 A 按e列分组的结果为:(pandas.core.groupby.generic.DataFrameGroupBy object at 0x000001F7AE17D400> 分组结果的类型为:' >Process finished with exit code 0图4-* DataFrame分组例如结果(2)查看分组结果按某列对DataFrame进行分组后的结果是一个可以迭代的对象,通过循环语句可以查看每一组的情况。例如代码如下:print("按e列分组后的每一组的结果为:")for g in group:print(g)输出结果如图4-求所示。Run:4-3AC:UsersliliangAnaconda3python.exe C:/Users/liliang/PycharmProjects/sjfx/4-3.py初始数据为: a b c d e二?501234A二1567gB».29101112 BW313141516 A按Q列分组后的每一组的结果为:('A', a b c d e01234A313141516A)(E, a b c d e15678B29101112B)Process finished with exit code 0 4: Run := 6: TODO ES Terminal *3* Python Console图4-*查看分组结果例如结果【结果分析】从图4-*的结果中可以看到,利用grougby对data按照e列进行 分组后,所有“A”为一组,所有“B”为一组,共分成了两组,这些分组的信息都被 存储在DataFrameGroupBy的数据类型中,通过循环语句就可以查看每一组的结果。2 .分组统计在DataFrame中,按照某一列进行分组后,还可以再对指定的列进行统计分析, 其一般方法为:DataFrame. 810叩6丫8丫二分组列)统计列,统计方法例如代码如下:print("初始数据为:n”,data)data_resultl = data.groupby(by='e')a',mean()data_result2 二 data.groupby(by='e')'b'.max()print("按e列分组再按a列统计平均值的结果为:n”,data_resultl)print("按e列分组再按b列统计最大值的结果为:n”,data_result2)输出结果如图4-*所示。Run:4-3C:UsersliliangAnaconda3python.exe C:/Users/liliang/PycharmProjects/sjfx/4-3.py 初始数据为: a b c d e01234A15678B29101112B313141516A按q列分组再按a列统计平均值的结果为: eA 7B 7Name: a, dtype: int32按e列分组再按b列统计最大值的结果为: eA 14B 10Name: b, dtype: int32Process finished with exit code 0图4-*分组统计例如结果二、数据分段统计分析在数据分析中,常常需要将连续数据离散化,这就是数据分段。数据分段就是指 在连续数据取值范围内设置一些离散的分段点,而将连续数据按照这些分段点进行分 段。如将年龄按照四个分段点7、18、35、65就可以分为五个年龄段,分别是:童年、 少年、青年、中年、老年。pandas中的cut函数可以实现将连续型数据转换为分段型数据,cut函数的一般 用法为:pandas.cut(x,bins,labels)其中,x表示要分段的列。bins表示用于分段的分段点,这些分段点可以组成分 段区间,并且这些区间是左开右闭区间(除了第1个区间和最后1个区间),如 bins=0,10,20,30,40表示四个分段区间:0,10、(11,20、(21,30> 31,40o labels 表示 每个分段的标签。例如代码如下:arr = np.arange(3,50,3).reshape(4,4)data = pd.DataFrame(arr,columns='a,b',c,/d,)print("初始数据为:nn,data)dataa_cut=pd.cut(data'a,bins=0,9J9,29,39,49,labels=,0+,;10+,;204-,;30+,;40+,)print(Ma列分段后的结果:n”,data)输出结果如图4-*所示。Run:4-3AC:UsersliliangAnaconda3python.exe C:/Users/liliang/PycharmProjects/sjfx/4-3.py初始数据为: abed rp036912£1115182124”.22730333622730333620+33942454830+Process finished with exit code 0图4-*数据分段例如结果【结果分析】因为分段区间是左开右闭区间,所以29到39是(29, 39,即从30 至U39,而这一数据分段对应的标签是“30+”,因此39属于“30+”。任务实训任务 1:利用 read_excel 导入 supermarket.xlsx (supermarket.xlsx 存放在 c:data 路 径中)中的“销售统计”工作表(第1张工作表),导入时将“客户ID”列设为索引, 将导入数据命名为datal,完成:(1)统计平均销售金额最少的3个省。(2)统计折扣金额总和排名前5的客户名单。具体代码如下:pd.set_option('display.max_columns',None)pd.set_option(,display. width',None)pd.set_option('display.unicode.east_asian_width',True)datal = pd.read_excel(,'c:datasupermarket.xlsx,',index_col='§/Ll ID') print。导入的数据为:n”,data l.head()datal_resultl = datal.groupby(by=,省')峰肖售金额mean()datal_resultl = data 1 _result 1 .sort_values().head(3)print("平均销售金额最少的3个省的结果为:n”,datalesultl) datal_result2 = datal.groupby(by士客户姓名')'折扣金额.sum() data 1 _result2 = data 1 _result2.sort_values(ascending=False).head() print("折扣金额总和排名前5的客户名单的结果为:n”,datalesult2) 输出结果如图4-*所示。Run:4-3C:UsersliliangAnaconda3python.exe C:/Users/liliang/PycharmProjects/sjfx/4-3.py导入的数据为:订单ID产品ID产品名林客户姓名省城市单价数呈侑售金额折扣折扣金额客户1014485US-2018-1357144 办公用-用品-10002717Fiskars 剪刀,蓝色浙江 杭州 652130 0.478.0* 一 二10165CN-2018-1973789 办公用-信封-10004832 GlobeWeis 搭扣信封,红色许安四川内江 6321260.0126.010165CN-2018-1973789办公用-装订-10001505 Cardinal孔加固材料,回收许安四川内江 162320.419.217170US-2018-3017568 办公用-用品-10003746Kleencut 开信刀,工业宋R 江苏 镇江 8043200.4192.015730 CN-2017-2975416 办公用器具-10003452 KitchenAid 授摔机,黑色万兰广东汕头 459313770.01377.0平均销售金额最少的3个省的结果为: 省 辽宁 271.2 甘需 291.0 青海 300.0Name:的售金额,dtype: float64折扣金额总和排名前5的客户名单的结果为: 客户姓名21017.015694.014143.09831.07945.0Name:折扣金额,dtype: float64Process finished with exit code 0图4-*任务1输出结果【结果分析】因为每个客户都有很多订单,所以要统计折扣金额排名前10的客 户名单,首先需要对数据按照客户进行分组,才能进行后续的统计分析。任务2:根据任务1的导入数据,重新命名为data2,将“销售金额”列进行分段 并生成新列,新列命名为“客户等级”。具体分段方法为:将销售金额的25%分位数、 50%分位数、75%分位数设为三个分段点,并以此将分为4段,“D”、"C”、"B”、“A”。 输出前10个数据,查看分段的效果。具体代码如下:data2 = dataldes = data2峰肖售金额'.describe。cut_bins = 0,des25%r|,des'50%r|,des75%r|,data2峰肖售金额r|,max()cutjabels =data2客户等级1=pd.cut(data2/销售金额,bins=cut_bins,labels=cutabels)print(data2.head(l 0)输出结果如图4-*所示。Run:C:UsersliliangAnaconda3python.exe C:/User$/liliang/Pychar«Projects/sjfx/4-3.pyIT* ID产品ID产品名落客户姓名 售 城市单价数倒营金疑折扣折扣金额客户答圾客户ID2s 51448sUS-2018 1357144 办公用-用品-10002717Fiskars 的刀,蓝色S® 浙江 杭州 6521300.478.0D10165CN-2018-1973789 办公用封-10004832 GlobeWeis 播扣信封,红色许安四川 内江 6321260.0126.9D10165CN-2018-1973789办公用-装订-10001505 Cardinal孔加固材料,回收淳安四川 内江 162320.419.2D17170 US-2018-3017S68 办公用-用品-10003746Kleencut 开信刀,工业宋良江苏 镣江 8643200.4192.0C15730CN-2017-2975416 办公用-器具-10003452KitchenAid 授样机,黑色万兰广东 汕头 459313770.01377.0B18325CN-2016-4497736技术-设冬-19001640柯尼卡打印机,红色南明江西集律懂12379111330.011133.0A18325CN-2016-4497736 办公用-装订-10001029IbiCO 订书机,实惠俞明江西景德镇 24024800.0480.0C18325 CN 2016-4497736 家具-椅子-10000578SAFCO 扶手椅,可谓俞明 江西 景德模 2165486600.08660.0A18325CN-2016-4497736 办公用-雄张-10001629 Green Bar tt划信息表,多色令明 江西 用使值 11855900.0590.0B18325 CN-2016-4497736 办公用-系固-10004801Stockwell 株皮筋,整包俞明江西景建镯 7721540.0154.0DProcess finished with exit code 0图4-*任务2输出结果巩固训练利用 read_csv 导入 c:datascore.csv, 完成:按“class”(班级)分组,计算各班“math”列的平均数和中位数。(2)将“math”列进行分段,成绩段分段方法为:0-59设为“不及格”,60-74为“合格”,75-89为“良好”,90-100为“优秀”,并将结果生成新列“math cut”。

    注意事项

    本文(Python数据分析与可视化教案4.3 数据的分组与分段.docx)为本站会员(太**)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开