Python数据分析与可视化教案3.4 数据的筛选与切片.docx

上传人:太** 文档编号:62268156 上传时间:2022-11-22 格式:DOCX 页数:8 大小:39.67KB
返回 下载 相关 举报
Python数据分析与可视化教案3.4 数据的筛选与切片.docx_第1页
第1页 / 共8页
Python数据分析与可视化教案3.4 数据的筛选与切片.docx_第2页
第2页 / 共8页
点击查看更多>>
资源描述

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

1、课 题3.4数据的筛选与切片课 型讲练授课班级大数据授课时数2教学目标1.能够直接选取列数据或行数据。2,能够利用loc函数选取数据。3.能够利用iloc函数选取数据。教学重点1.能够选取列数据或行数据。教学难点1.理解利用1OC函数和iloc函数选取数据的区别。学情分析选取数据是数据预处理中一种简单的操作,难度不是很大。在对数据做相应操作之前,应先筛选出所需的数据,pandas里最常用的结构 DataFrame就是一个二维表,行和列的设计很便于数据的选取。DataFrame的索引有 两种,行索引用index来表示,列索引用columns表示,而在选取行数据、列数据或 是切片DataFrame

2、数据时,都会使用这两个索引。一、直接选取列数据通过用二维嵌套字典可以创立DataFrame,并且将列数据看成是外层字典,而将 行数据看成是内层字典。按照字典的访问方式就可以访问DataFrame的数据,如果是 输入字典的关键字,默认返回的就是外层字典的数据。在DataFrame后面直接跟关键 字,默认就返回该关键字对应列数据。利用字典方式选取列数据有两种,一种时选取 单列,另一种时选取多列。1 .选取单列在DataFrame中,每一列数据的查询可以通过列名读取来实现,选取单列的一般 格式为:DataFramecolumn其中,column表示单列的名称。2 .选取多列在DataFrame中,访

3、问多列数据需要将多个列名columns放入一个列表口中,选 取多列的一般格式为:DataFramecolumns其中,columns表示多列的名称。例如代码如下:import numpy as npimport pandas as pddata = pd.DataFrame(np.arange(l,10).reshape(3,3)9columns=,a,b,c,index=00r;002,;003,)print(初始数据为:n;data)print(选取b列的列数据为:n”,datab)print。选取a列和c列的列数据为MdataTa)输出结果如图3-*所示。Run:3-4AC:Usersl

4、iliangAnaconda3python.exe C:/Users/liliang/PycharmProjects/sjfx/3-4.py初始数据为:a b c二方001123R002456_0037897选取b列的列数据为:001200250038Name: b, dtype: int32 选取a列和c列的列数据为: a c 001 1 3 002 4 6 003 7 9Process finished with exit code 0图3-*选取单列和多列例如结果二、利用10C函数选取行数据L利用行索引选取数据在DataFrame中,如果选取行数据,不能直接用行索引进行选取,而是需要使用

5、 10C函数进行选取,10C函数的一般用法是:DataFrame.loc Auto_index或 DataFrame.locset_index其中,Auto_index表示自动生成的行索引,sejindex表示用户设置的行索引。(1)利用自动生成的行索引选取数据利用自动生成的行索引选取数据的一般用法为:DataFrame.locAuto_index其中,Auto_index可以是单个索引,也可以是多个不连续或连续的索引。选取多 个不连续索引时,需要将这些索引放入一个列表口中。选取多个连续索引时,可以用 冒号连接起始索引和终止索引,并且起始索引和终止索引都是可以取到的。例如代码如下:print(

6、初始数据为:n”,data)print(选取自动行索引为002的行数据为:n”,data.k)c002)print(选取自动行索引为001和003的行数据为:n”,data.loc1001:003R)print(选取自动行索引为001到003的行数据为:n”,data.loc001:003)输出结果如图3-*所示。Run:3-4AC:UsersliliangAnaconda3python.exe C:/Users/liliang/PycharmProjects/sjfx/3-4.py初始数据为: a b c rp 001 1 2 3U 002 4 5 6 _ 003 7 8 9“ 选取自动行索

7、引为0。2的行数据为:i a 4b 5C 6Name: 002, dtype: int32选取自动行索引为001和003的行数据为:a b c001 1 2 3003 7 8 9选取自动行索引为。01到的行数据为:a b c001 1 2 3002 4 5 6003 7 8 9Process finished with exit code 0图3-*利用自动生成的行索引选取数据例如结果(2)利用生成的索引选取数据除了利用自动生成索引选取数据以外,还可以利用用户生成的索引选取数据,其 一般用法为:_DataFrame.locset_index其中,setjndex表示用户设置的行索引。例如代码如

8、下:datafd1 = 2020-1 -1V2020-1 -2f;2020-1 -Sdata = data.set_index(d)#利用 setjndex 将 d 列设置为行索引print(增加d列并重设索引的数据为:n”,data)print(选取行索引为2020/-2的行数据为:n”,data. 10武2020-1-21)print。选取行索引为 2020-1-1 和 2020-1-3 的行数据 J:nn,data.loc,2020-l-r;2020-l-31)输出结果如图3-*所示。Run:3-4AC:UsersliliangAnaconda3python.exe C:/Users/l

9、iliang/PycharmProjects/sjfx/3-4.py增加d列并重设索引的数据为:a b c& dU 2020-1-1 123.2020-1-2 4 5 6W 2020-1-3 789 选取行索引为2020-1-2的行数据为: a 4b 5c 6Name: 2020-1-2? dtype: int32选取行索引为2020-1-1和2020-1-3的行数据为: a b cd 2020-1-1 123 2020-1-3 789Process finished with exit code 0图3-*利用生成的索引列选取数据例如结果2.利用行筛选条件选取数据在DataFrame中,除了

10、可以利用行索引选取行数据以外,还可以利用loc函数设 置筛选条件选取行数据,比方筛选性别为“男”的行数据,或是地区为“苏州”的行 数据等。利用1OC函数设置行筛选条件选取行数据的一般方法为:DataFrame.loc 行筛选条件其中,如果存在多个行筛选条件,可以使用等连接符进行连接,而且将每 个行筛选条件都写在括号()内。例如代码如下:data = data.reset_index() #利用reset_index将设置的索引还原成自动行索引 print(还原成自动行索引后的数据为:ndata)printed 列的值为 2020-1-1 的结果为:n”,data.locdatad二2020-l

11、-l1)输出结果如图3-*所示。Run:3-4AC:UsQrsliliangAnaconda3python.exe C:/Users/liliang/PycharmProjects/sjfx/3-4.py还原成自动行索引后的数据为: d a b c二己02020-1-11 2 3“12020-1-2456.22020-1-37 8 9?d列的值为2020-1-1的结果为:d a b c0 2020-1-1 123Process finished with exit code 0图3-*利用行筛选条件选取数据例如结果三、选取DataFrame切片数据在DataFrame中,除了可以单独选列数据或

12、行数据以外,还可以选取多列多行的 数据,即DataFrame切片数据,DataFrame切片数据可以通过多种方式进行实现,既 可以通过类似于二维字典数据选取的方法,即双重索引的方法,也可以通过10C函数 或iloc函数。1 .使用双重索引直接选取数据利用双重索引(先列后行)选取DataFrame切片数据的原理是通过DataFramecolumns选出需要的多列,再通过index选出需要的行,其一般方法为: DataFramecolumns index 例如代码如下:data = pd.DataFrame(np.arange( 1,17).reshape(4,4), columns=,a,b,c

13、d, index=001 ,;002,;003,;004,)print(初始数据为:n”,data)print(”行索引为 001 列 003,a 列与 c 列的结果为:n”,dataa,cR/001T003) 输出结果如图3-*所示。Run:3-4AC:UsersliliangAnaconda3python.exe C:/Users/liliang/PycharmProjects/sjfx/3-4.py”.0039101112W 004 13 14 15 16 行索引为。01列003,a列与c列的结果为: a c 001 13002 57003 9 11 Process finished w

14、ith exit code 0图3-*使用双重索引直接选取(先列后行)例如结果2 .使用loc函数选取数据loc函数不但可以单独选取行数据,而且还可以选取DataFrame切片数据(先行 后列),其一般方法为:DataFrame.locindex,columns或 DataFrame.loc行筛选条件,columns其中,index可以是单个索引,也可以是多个不连续或连续的索引。选取多个不 连续索引时,需要将这些索引放入一个列表中。选取多个连续索引时,可以用冒号 “:”连接起始始索引和终止索引,并且起始索引和终止索引都是可以取到的。如果 columns是多列,需要将多个列名要放入一个列表口中。

15、例如代码如下:print(初始数据为据”,data)print(行索弓I为001列003,a列与c列的结果为:己京11001丁003或,防) print(行索引为 001 与 003,a 列与 c 列的结果为:n”,data.k)c001?003rlla?cR) print(满足a列的值大于3的行数据中,再选择a列、b列、c列的结果为:n, data.locdata,a,3,a,;b,;c)输出结果如图3-*所示。3-4Run:AC:UsersliliangAnaconda3python.exe C:/Users/liliang/PycharmProjects/sjfx/3-4.py初始数据为

16、:4*行索引为001列003,a列与(:列的结果为:abcd500112340025678003910111200413141516a c 001 13002 57003 9 11行索引为001与003,a列与c列的结果为: a c 001 13003 9 11行索引为001列003,a列与c列的结果为: a c 001 13002 57003 9 11满足a列的值大于3的行数据中,再选择a列、b列、c列的结果为:abc00256700391011004131415图3-*使用10C选取数据例如结果3 .使用ilOC函数选取数据iloc函数是按照行(index)与列(column)的位置来进行

17、选取数据,iloc不管行 与列的具体值是多少,只和位置有关。iloc函数的一般用法为:ilocindex_num, columns_num其中,index_num和columns_num只能使用数值,对应的行索引和列索引的编号, 而要注意行索引和列索引都是从。开始编号。index_num和columns_num可以只有一 个数字,也可以是一个范围,并且范围都是左闭右开区间,即右端点索引对应的行或 列是不能取到的,这一点1函数是有所不同的。例如代码如下:print。初始数据为:n”, data)print(行索引编号1到3,列索引编号0到2的数据为:n”,data.ilocl:4,0:3)输出结

18、果如图3-*所示。C:UsersliliangAnaconda3python.exe初始数据为: abed50011234丑0025678003910111200413141516行索引编号1到3 ,列索引编号0到2的数据为; a b c00256700391011004 13 14 15Process finished with exit code 0Run:3-4C:/Users/liliang/PycharmProjects/sjfx/3-4.py图3-*使用iloc选取数据例如结果任务实训任务 1 :利用 read excel 导入 supermarket.xlsx (supermar

19、ket.xlsx 存放在 c:data 路径中)中的“销售统计”工作表(第1张工作表),并将“客户ID”设为索引列,将 导入数据的前3行命名为datal,并完成:(1)选取“产品名称”列的数据。(2)选取“订单日期”、“发货日期”两列的数据。(3)选取“客户编号”为“10165”的行数据。(4)选取“城市”为“内江”并且“销售金额”大于100的数据。任务1 (1)具体代码如下:pd.set_option(display.max_columns,None)pd.set_option(,display. width*,None)pd.set_option(display.unicode.east_

20、asian_widthTrue)datal = pd.read_excel(c:datasupermarket.xlsxindex_col =客户 IDf).head(3)print(导入的数据为:ndata 1)print。选取产品名称冽的数据为:n”,datal 产品名称)输出结果如图3-*所示。Run:3-414485.0US-2018-1357144办公用-用品-10002717Fiskars剪刀,蓝色百惠浙江杭州公司 2018-04-27 2018-04-2965.02.010165.0CN-2018-1973789办公用-信封-10004832GlobeWeis搭扣信封,红色许安四

21、川内江消费各 2018-06-15 2018-06-1963.02.010165.0CN-2018-1973789办公用-装订-10001505Cardinal孔加固材料,回收许安四川内江消费者 2018-06-15 2018-06-1916.02.0C:UsersliliangAnaconda3python.exe C:/Users/liliang/PycharmProjects/sjfx/3-4.py 导入的数据为:订单ID产品ID产品名环 客户姓名 省 城市 细分订单日期发货日期 单价 数量客户ID选取,产品名琳列的数据为:客户ID14485.0Fiskars 剪刀,蓝色10165.0G

22、lobeWeis搭扣信封,红色10165.0Cardinal孔加固材料,回收130.00.478.0126.00.0126.032.00.419.2俏1金额折扣折扣金镖Nae:产品名林,dtype: objectProcess finished with exit code 0图3-*任务1(1)输出结果任务1(2)具体代码如下:print(选取订单日期冽和发货日期,的数据为:n”,datal 订单日期?发货日期 输出结果如图3-*所示。Run:3-4AC:UsersliliangAnaconda3python.exe C:/Users/liliang/PycharmProjects/sjfx

23、/3-4.py选取,订单日期,列和,发货日期,的数据为:.订单日期发货日期 rp 客户ID14485 2018-04-27 2018-04-29.10165 2018-06-15 2018-06-1910165 2018-06-15 2018-06-19Process finished with exit code 0图3-*任务1 (2)输出结果任务1 (3)具体代码如下:print。选取客户 ID为 10165 的行数据为:n”,datal.loc10165)输出结果如图3-*所示。Run:3-4C:UsersliliangAnaconda3python.exe C:/Users/lili

24、ang/PycharmProjects/sjfx/3-4.py 选取.客户nr为10165的行数幄为:订单ID产品ID产品名称客户姓名省城市细分订单日期发货日期单价的房金颗折扣折扣金蕊客户ID1016S.0 CN 20181973789办公用-信封10004832GlobeWeis格扣信封,红色许安四川内江消费春 2018-06-152018 06 1963.02.0126.00.0126.0A10165.0 CN 2018-1973789办公用-笠订10001505Cardinal孔加固材料,回收许安四川内江消费者2018 06-152018 06 1916.02.032.00.419.2

25、Process finished with exit code 0图3-*任务1 (3)输出结果任务1 (4)具体代码如下:print(选取城市为内江,销售金额,大于100数据为:n,datal.loc(datal。城市卜二,内江)& (datal销售金额100)输出结果如图3-*所示。Run:3-4AC:UsersliliangAnaconda3python.exe C:/Users/liliang/PycharmProjects/sjfx/3-4.py选取,城市,为内江,销售金额,大于100数据为:订单ID产品ID产品名称客户姓名省城市 细分订单日期发货日期单价数量销皆金额折扣折扣金额-

26、rp 客户ID过 10165.0 CN-2018-1973789 办公用-信封-10004832 GlobeWeis 搭扣信封,红色 许安 四川 内江 消费者 2018-06-1S 2018-06-19 63.02.0126.00.0126.0Process finished with exit code 0图3-*任务1 (4)输出结果任务 2:利用 read_excel 导入 supermarket.xlsx (supermarket.xlsx 存放在 c:data 路 径中)中的“销售统计”工作表(第1张工作表),将导入数据的前5行命名为data2, 并完成:(1)选取行索引为2到4,

27、“客户姓名”和“客户ID”列的数据。(2)选取“客户姓名”为“许安”,“客户姓名”、“销售金额”、“折扣金额”歹U 的数据。任务2 (1)具体代码如下:data2 = pd.read_excel(c:datasupermarket.xlsx).heaa5)print(导入的数据为:ndata2)print(行索引为2到4的,客户姓名客户ID的数据:n,data2oc2:4,客户姓名?客户ID)输出结果如图3-*所示。Run:3-4C:UserliliangAnaconda3python.exe C:/U$ers/liliang/PychdrmProjects/$jfx/3-4.py 导入的数徭

28、为:订单ID产品ID产品名称客户I。客户姓名者城市细分订单日期发货日期单价教星销您金颗折扣折扣金0 US-2018-1357144办公用-用品-10002717Fiskars剪刀,塞色14485.0曾惠浦江杭州公司 2018-94-272018-04-2965.02.0130.00.478.a1 CN-2018-1973789办公用-信封-10034832GlobeWeis搭扣信封,红色10165.0许安四川内江消费者 2018-06-152018-061963.02.0126.00.0126.*2 CN 2018-1973789办公用.装订-100015。$Cardinal孔加固材料,回收1

29、0165.0许安HJII内江消费需 2018-06-152018 06-1916.02.032.00.419.3 US-2918-3017568办公用-用品-10003746Kleencut开信刀,工业17170.0宋R江苏穗江公司 2018-12-092018-12-1380.04.0320.00.4192.4 CM 2017 297乂16办公用-85具-100。3452KitchenAid搅摔机,黑色15730.0万兰广东汕头消费者 2017-0S-312017-06-02459.03.01377.00.01377.行索曳为2到4的客户姓名和客户I。的数据:客户姓名 客户ID2 许安101

30、65.03 宋包17170.04 万兰15730.。Process finished with exit code 0图3-*任务2 (1)输出结果任务2 (2)具体代码如下:prints客户姓名为许安,客户姓名、销售金额、折扣金额的数据为: data2.k)cdata21客户姓名卜=许安客户姓名?销售金额?折扣金额R) 输出结果如图3-*所示。Run:3-4A . C:UsersliliangAnaconda3python.exe C:UsersliliangPycharmProjectspython3-4.py客户姓名为许安,客户姓名、销售金ST、折扣金的数据为:客户姓名销传金酸折扣金融- E5 1许安126126.0a 2许安3219.2x 一Process finished with exit code 0图3-*任务2 (2)输出结果巩固训练利用 read_excel 导入 supermarket.xlsx (supermarket.xlsx 存放在 c:data 路径中)中的“销售统计”工作表(第I张工作表),导入数据的前10行,并完成:(1)选取“城市”、“销售金额”、“折扣金额” 3列数据。(2)选取“销售金额”大于5000的“客户姓名”和“客户ID”。

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

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

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

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