Python数据分析与可视化教案3.4 数据的筛选与切片.docx
《Python数据分析与可视化教案3.4 数据的筛选与切片.docx》由会员分享,可在线阅读,更多相关《Python数据分析与可视化教案3.4 数据的筛选与切片.docx(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
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初始数据为
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Python数据分析与可视化 教案 3.4 数据的筛选与切片 Python 数据 分析 可视化 筛选 切片
限制150内