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

上传人:太** 文档编号:63283440 上传时间:2022-11-24 格式:DOCX 页数:6 大小:30.32KB
返回 下载 相关 举报
Python数据分析与可视化教案4.3 数据的分组与分段.docx_第1页
第1页 / 共6页
Python数据分析与可视化教案4.3 数据的分组与分段.docx_第2页
第2页 / 共6页
点击查看更多>>
资源描述

《Python数据分析与可视化教案4.3 数据的分组与分段.docx》由会员分享,可在线阅读,更多相关《Python数据分析与可视化教案4.3 数据的分组与分段.docx(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、课 题4.3数据的分组与分段课 型讲练授课班级大数据授课时数2教学目标1 .能够将数据按照指定列分组并汇总统计。2 .能够将数据按指定列进行数据分段。教学重点1 .能够将数据按照指定列分组并汇总统计。2 .能够将数据按指定列进行数据分段。教学难点1 .能够将数据按照指定列分组并汇总统计。2 .能够将数据按指定列进行数据分段。学情分析本次课有一定难度,数据的分组统计是数据分析的一种常用的方法,这 种方法类似于Excel的分类汇总,仅仅分组是很不出任何结果的,只有统计 后才能看到结果,而数据分段有点类似于Excel的if函数嵌套进行数据分 组。充分理解Excel的分类汇总和if函数有助于本次课的学

2、习。在数据分析时,对数据进行分组和分段是常用的一种操作,通过分组和分段可以 挖掘出更多数据的内在信息。数据分组的作用是可以快速对所有分组进行统计计算, 比方计算男女学生的平均成绩时,可以先按性别分组,然后再按成绩统计各组的平均 数。数据分段作用在于可以将连续的数据离散化,比方将成绩分为不同的成绩等级, 将年龄分为不同的年龄段,这样就可以通过不同数据段的统计分析挖掘出一些更加有 用的信息。一、数据分组统计分析分组是指将DataFrame按照某列划分为多个不同的组,然后再按另外一列计算每 组的一些统计指标,这一点类似于Excel的分类汇总,分组统计时只要确定分组字段、 统计字段和统计方法就可以执行

3、。1 .数据分组pandas提供了一个灵活高效的groupby函数,通过groupby函数可以对DataFrame 进行分组操作,进而再对每一组进行统计分析,如计算最大值、最小值、平均值、中 位数等。(1)按某列对DataFrame进行分组通过groupby函数执行分组操作,只会返回一个GroupBy对象,该对象实际上并 没有进行任何的计算,其仅仅是中间数据。groupby函数的一般用法为:DataFrame.groupby(by =分组歹(J)其中,by表示分组的列,即DataFrame按照这一列进行分组,但是其结果只是 一个中间数据,不产生任何的统计结果。例如代码如下:import num

4、py 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

5、-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列分组后的每一组的结果为:)

6、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: TOD

7、O ES Terminal *3* Python Console图4-*查看分组结果例如结果【结果分析】从图4-*的结果中可以看到,利用grougby对data按照e列进行 分组后,所有“A”为一组,所有“B”为一组,共分成了两组,这些分组的信息都被 存储在DataFrameGroupBy的数据类型中,通过循环语句就可以查看每一组的结果。2 .分组统计在DataFrame中,按照某一列进行分组后,还可以再对指定的列进行统计分析, 其一般方法为:DataFrame. 810叩6丫8丫二分组列)统计列,统计方法例如代码如下:print(初始数据为:n”,data)data_resultl = da

8、ta.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列

9、统计平均值的结果为: 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函数可以实现将连续型数据转换为分段

10、型数据,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_cu

11、t=pd.cut(dataa,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 rp0369121115182124”.22730333622730333620+33942454830+Process finished with exit code 0图4-*数据分段例如结果

12、【结果分析】因为分段区间是左开右闭区间,所以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_

13、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”

14、,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产品名林客户姓名省城市单价

15、数呈侑售金额折扣折扣金额客户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 江苏 镇江 8043

16、200.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输出结果【结果分析】因为每个客户都有很多

17、订单,所以要统计折扣金额排名前10的客 户名单,首先需要对数据按照客户进行分组,才能进行后续的统计分析。任务2:根据任务1的导入数据,重新命名为data2,将“销售金额”列进行分段 并生成新列,新列命名为“客户等级”。具体分段方法为:将销售金额的25%分位数、 50%分位数、75%分位数设为三个分段点,并以此将分为4段,“D”、C”、B”、“A”。 输出前10个数据,查看分段的效果。具体代码如下:data2 = dataldes = data2峰肖售金额.describe。cut_bins = 0,des25%r|,des50%r|,des75%r|,data2峰肖售金额r|,max()cut

18、jabels =data2客户等级1=pd.cut(data2/销售金额,bins=cut_bins,labels=cutabels)print(data2.head(l 0)输出结果如图4-*所示。Run:C:UsersliliangAnaconda3python.exe C:/User$/liliang/PycharProjects/sjfx/4-3.pyIT* ID产品ID产品名落客户姓名 售 城市单价数倒营金疑折扣折扣金额客户答圾客户ID2s 51448sUS-2018 1357144 办公用-用品-10002717Fiskars 的刀,蓝色S 浙江 杭州 6521300.478.0D

19、10165CN-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.

20、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”。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 解决方案

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

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