浙教版(2019)高中信息技术必修1 利用Pandas模块处理数据 课件+素材

资源下载
  1. 二一教育资源

浙教版(2019)高中信息技术必修1 利用Pandas模块处理数据 课件+素材

资源简介

姓名 班级 总分 班级排名 年级排名 语文 数学 英语 物理 化学 技术
张明远 G302 677 1 1 121 132 128 98 100 -
李雨桐 G302 676 2 2 106 143 133 96 99 -
王思睿 G302 671 3 3 108 136 133 95 100 -
刘星辰 G302 670 4 4 116 135 131 97 98 -
陈若曦 G301 668.5 1 5 116.5 121 135 99 98 -
杨天宇 G301 668 2 6 117 116 139 99 98 -
赵雅琳 G303 663 1 7 110 125 137 97 98 -
黄俊杰 G302 662.5 5 8 113.5 141 121 95 98 -
周晓涵 G302 662 6 9 112.5 126 132.5 95 98 98
吴浩轩 G301 661.5 3 10 116.5 115 137 98 97 98
徐安然 G301 659.5 4 11 107.5 127 132 98 97 98
孙悦然 G302 659 7 12 118.5 114 133.5 98 97 98
朱文昊 G307 655.5 1 13 110.5 119 133 98 97 -
胡佳怡 G301 652.5 5 14 117 114 131.5 97 95 -
林嘉树 G302 652 8 15 114 110 136 96 97 -
郑心怡 G307 650.5 2 16 107.5 113 136 98 98 -
谢宇航 G309 649 1 17 116.5 116 122.5 96 98 -
唐语嫣 G301 648 6 18 115 109 130 98 98 98
韩修杰 G308 645 1 19 115 113 131 97 98 -
董欣妍 G301 644.5 7 20 102.5 108 140 97 98 99
曹逸辰 G302 643.5 9 21 107.5 124 125 94 97 -
许清婉 G309 643.5 2 21 107.5 117 132 96 93 98
邓子墨 G301 642 8 23 110 107 139 98 90 98
萧云峰 G311 642 1 23 115 99 137 98 96 -
冯诗晴 G306 639 1 25 109 104 133 97 97 99
曾一鸣 G304 637.5 1 26 111.5 111 125 96 96 -
彭梓萱 G301 636.5 9 27 103.5 122 118 98 97 98
潘睿哲 G302 636.5 10 27 110.5 113 124 97 96 -
袁静怡 G308 636 2 29 105 113 123 98 98 99
于皓然 G302 635 11 30 118 100 136 87 96 -
蒋梦琪 G303 635 2 30 115.5 128 105.5 95 97 -
蔡昊阳 G301 634.5 10 32 102.5 124 118 97 95 98
余书瑶 G302 634.5 12 32 108.5 109 132 95 97 -
杜泽楷 G303 633.5 3 34 113.5 105 128 94 97 -
叶晨曦 G310 633 1 35 119 99 128 - - -
程雪柔 G303 632.5 4 36 111.5 107 129 92 96 -
苏逸飞 G303 632.5 4 36 113.5 112 123 97 96 -
魏瑾萱 G308 632.5 3 36 109.5 126 116 95 90 -
吕明哲 G301 632 11 39 102 111 128 98 94 -
丁乐怡 G301 632 11 39 108 117 116 99 96 -
任俊豪 G301 632 11 39 113 104 136 96 89 -
卢婉清 G301 631.5 14 42 110.5 109 127 92 97 -
钟志远 G303 631.5 6 42 111.5 96 133 97 98 -
汪雨菲 G303 631.5 6 42 115.5 111 117 95 96 -
田瑞霖 G301 631 15 45 99.5 114 128.5 95 98 -
姜悦宁 G301 629.5 16 46 110.5 102 131 97 91 98
崔浩宇 G303 628.5 8 47 115.5 118 111 98 98 -
康雅雯 G307 628 3 48 107 99 131 98 96 -
白昊然 G303 627.5 9 49 112.5 112 116 96 95 -
江念真 G302 627 13 50 109 111 127 93 93 -
孟翔宇 G310 627 2 50 110.5 107 125.5 - - -
方诗涵 G301 626.5 17 52 106 108 127.5 98 94 -
石峻熙 G308 626.5 4 52 102.5 114 123 97 97 -
廖思颖 G309 626.5 3 52 115.5 105 128 87 93 -
赖天佑 G302 625.5 14 55 116.5 97 125 92 98 -
武佳琪 G307 625.5 4 55 103.5 99 129 98 98 98
戴文博 G302 624.5 15 57 110.5 108 134 86 88 98
夏若晴 G303 624.5 10 57 117 105 128.5 92 86 -
傅凌峰 G303 624.5 10 57 116.5 111 110 98 97 92
范悦欣 G306 624.5 2 57 109.5 107 124 91 96 97
乔一凡 G304 623 2 61 104 113 123 92 94 97
谭心玥 G310 622.5 3 62 100.5 106 128 - - -
洪子骞 G301 622 18 63 119 105 121 89 90 -
龚美琳 G301 621.5 19 64 116.5 100 128 88 90 -
文彦哲 G310 621.5 4 64 115.5 104 127 89 94 -
辛雨晨 G301 620.5 20 66 114.5 83 132 95 98 -
严瑾瑜 G303 620.5 12 66 110.5 106 126 87 97 -
秦昊阳 G303 620.5 12 66 99.5 113 116 98 96 98
尤静雅 G304 620.5 3 66 102.5 118 122 89 95 -
薛承安 G305 620.5 1 66 108 96 129.5 - - -
贺思涵 G307 620 5 71 112 98 120 97 96 -
倪俊杰 G301 619.5 21 72 99.5 102 129 95 98 -
罗雯婷 G303 618.5 14 73 110.5 98 135 94 94 -
郝明辉 G306 618.5 3 73 100.5 108 125 95 92 -
易婉清 G302 618 16 75 109 99 132 88 99 -
常乐成 G303 618 15 75 115 96 123 - 95 -利用Pandas模块
处理数据
基础概念
·总括
1. Pandas 提供了 Series 和 DataFrame 两种数据
结构。
2. 引入 Pandas 模块的语句:
import pandas as pd
pd是用户为导入模块取的别名。
基础概念
·Series
1. Series 是一种一维的数据结构,包含一个数组
的数据 (values) 和一个与数据关联的索引 (index) ,
索引值默认是从 0 起递增的整数。
2. Series 对象与列表的不同之处:列表只能默认
索引从 0 开始,而 Series 可以指定索引,索引类
型可以是字符串型。索引值不能重复,具有唯一性。
基础概念
·Series 对象属性
属性 说明
Series 的下标索引,其值默认是从0起递
index
增的整数,也可以指定为字符串型
values 存放 Series 值的一个数组
基础概念
·Series相关操作 运行结果:
1. 创建 Series 对象(默认索引)
import pandas as pd
s1=pd.Series([45,30,35,28])
print(s1)
2. 创建 Series 对象(指定索引)
import pandas as pd
s2=pd.Series([8,12,18,20],index=
["a","b","c","d"])
print(s2)
基础概念
·Series相关操作 运行结果:
3. Series 对象的检索与修改
输出索引值为 0 的值: print(s1[0]) 45
输出索引值为"b"的值: print(s2["b"]) 12
输出values小于33的值:print(s1[s1<33]) 1 30
修改索引值为 1 的值为 10 : s1[1]=10 3 28
print(s1[1]) dtype: int64
注意 s1 和 s2 索引的区别!!! 10
基础概念
·Series相关操作 运行结果:
4. Series 对象的遍历 a
遍历 Series 对象的索引 b
c
for i in s2.index: d
print(i)
遍历 Series 对象的值 8
12
for i in s2.values: 18
print(i) 20
基础概念
·Series相关操作
4. 类比于列表 Series 对象的遍历
【注意】 遍历 Series 对象的值时 ,
s2.values 可以省略成 s2 ,因为 运行结果:
Series 对象默认属性就是 values
10
20
30
基础概念
·DataFrame
DataFrame 是一种二维的数据结构,由1个索
引列 (index) 和若干个数据列组成,每个数据列可
以是不同的类型。
DataFrame 可以看作是共享同一个 index 的
Series 的集合。
基础概念
·DataFrame
基础概念
·DataFrame 对象属性
属性 说明
index DataFrame 的行索引
columns 存放各列的标题
values 存放二维数据的值
T 行列转置
基础概念
·DataFrame 相关操作
1. 创建 DataFrame 对象(利用字典)
运行结果: 注意:
代码中 index=[0,1,2],columns=["学号
","性别","年龄"]可以省略,因为默认索引就是
[0,1,2],列标题columns默认就是字典的键。
基础概念
·DataFrame 相关操作 运行结果:
4. DataFrame 对象的遍历及转置
0
for i in df.index: 1索引 print(i) 2
for i in df.columns: 学号
列标题 print(i) 性别
#df.columns可写成df 年龄
基础概念
·DataFrame 相关操作 运行结果:
4. DataFrame 对象的遍历及转置
['s001' '男' 16]
for i in df.values: ['s002' '女' 17]
值 print(i) ['s003' '男' 18]
行列
转置
df.values 本质上是二维列表,即 df.values=[['s001','男','16'],
['s002','女','17'],['s003','男','18']],其中 df.values[0]值为
['s001','男','16'].
基础概念
·DataFrame 相关操作
5. 其他创建 DataFrame 对象方式
由二维列表创建
由 Excel / Csv 表格创建
基础概念
·DataFrame 常见函数
函数 说明
count( ) 返回非空(NaN)数据项的数量
sum( )、mean( ) 求和、求平均值,通过axis=0/1确定行列
max( )、min( ) 返回最大、最小值
返回各列的基本描述统计值,包含计数、平均
describe( )
数、标准差、最大值、最小值及4分位差
head( )、tail( ) 返回DataFrame的前n个、后n个数据记录
基础概念
·DataFrame 常见函数
函数 说明
对各列或各行中的数据进行分组,然后可对其
groupby( )
中每一组数据进行不同的操作
sort_values( ) 排序,通过axis=0/l确定行列
drop( ) 删除数据,通过axis=0/1确定行列
append( ) 在指定元素的结尾插入内容
insert( ) 在指定位置插入列
基础概念
·DataFrame 常见函数
函数 说明
rename( ) 修改列名或者索引
concat( ) 合并DataFrame对象
set_value( ) 根据行标签和列标签设置单个值
plot( ) 绘图
基础概念
·DataFrame 相关操作
演示
1. axis=0/1 的使用情况(默认 axis=0)
2. 获取数据方式
3. 筛选(略:多条件筛选)
4. 数据统计(略:多列求和)
5. 删除 drop( )
6. 添加行/列 append( )
7. 数据排序
8. 数据分组
9. 绘图
基础概念
·DataFrame 相关操作
演示
1. axis=0/1 的使用情况(默认 axis=0)
axis=0:数据在纵向发生变化,沿着每一列向下执行
axis=1:数据在横向发生变化,沿着每一行横向执行
具体应用:sum( ) , mean( ) , count( ) , drop( )
基础概念
·DataFrame 相关操作
演示
2. 获取数据方式
(1) 获取某列数据(以获取语文列为例)
属性记法:df.语文 字典记法:df["语文"]
注:列名是数字开头,只能用字典记法,即 df[1]
(2) 获取行数据
获取第 1 行:df[0:1] (切片)
获取第 n 行:df[n-1:n]
获取前/后 n 行:df.head(n) / df.tail(n)
注:head( ) / tail( ) 默认前/后5行
基础概念
·DataFrame 相关操作
演示
2. 获取数据方式
(3) 获取单个值
以索引获取: df.at[6,"总分"]
df.总分[6]
df["总分"][6]
以行数获取: df.values[6,2]
df.values[6][2]
注:除 values[ ] 外,其余均可用来修改值
基础概念
·DataFrame 相关操作
演示
3. 筛选(略:多条件筛选)
e.g. 筛选总分大于 650 的数据行
df[df.总分>650]
df[df["总分"]>650]
注:双层结构嵌套!!!
多条件筛选(单个条件用()括起来)
与:条件之间用&相连
或:条件之间用 | 相连
e.g. df[(df.语文>110)&(df.数学>110)]
基础概念
·DataFrame 相关操作
4. 数据统计(略:多列求和)(以数学列为例)
计算数据个数:df.数学.count(axis= )
计算平均值: df.数学.mean()
计算数据之和:df.数学.sum()
注:当然也可以用字典记法!
补充:
① 字符类型可求和(字符串相连)、计数;不可求平均(会报错)
但不同类型的数据(如字符和数字)不能直接一起求和
② 一般不对行进行统计(数据类型杂乱)
③ 行上某几列求平均 (了解)(增加列的方法)
df["平均分"]=df[["语文","数学","英语"]].mean(axis=1)
基础概念
·DataFrame 相关操作
演示
5. 删除 drop( )
删除列:df.drop("化学",axis=1)
删除行:df.drop(0)
6. 添加行/列 _append( )
添加行:df2=df._append({"姓名":"张三","班级
":"G301","总分":670,"班级排名":3,"年级排名":50,"语文
":130,"数学":134,"英语":120,"物理":90,"化学":88,"技术
":100},ignore_index=True)
注:利用字典方式添加!
基础概念
·DataFrame 相关操作
演示
6. 添加行/列 _append( )
添加列:目前一般只能用“行上某几列求和”的方式
补充:①关于数据统计:在3.8及其以前的python中,遇到无法求
平均的字符类型,会自动隐藏。故可以直接写df.mean()对每一列数
据求平均,也可以通过df.总分=df.sum(axis=1)来增加总分列。但
在3.11版本后的python中,则会报错。故只能通过df.语文.mean()
来对语文列求平均。不过目前命题者并不会在这个方向来考察。
②关于变量赋值的操作
如果是对表格内容进行操作(增删改),则需给它一个变量赋值。
如df=;df2=;如果是获得表格的内容,则可以直接print。
基础概念
·DataFrame 相关操作
演示
7. 数据排序
dft=df.sort_values("语文") #按语文成绩排序,默认升序
dfs=df.sort_values("数学",ascending=False)
注:① ascending=True 升序 ;False 降序(默认True)
② ignore_index=True 忽略原索引(默认False)
基础概念
·DataFrame 相关操作
演示
8. 数据分组(按班级分组求平均)
g=df.groupby("班级",as_index=False)
g=g.mean()
h=df.groupby("班级").mean()
注:① 分组后必须跟上数据统计的操作(求和、平均、计数)。
否则无法输出(因为此时df对象处于待整理状态)
② as_index 是否将分组依据作为新索引(默认True)
若为True,则再访问班级列不能写h.班级;必须写h.index
(班级列已经作为索引,所以不存在了)
基础概念
·DataFrame 相关操作
演示
8. 数据分组(按班级分组求平均)
特别提醒:
如果分组后对某一列操作且将分组依据作为新索引,则新的df
对象自动变为Series对象。
h=df.groupby("班级").英语.mean() #①
此时不再有班级和英语列。
须用h.index h.values来获得两列数据。
或者在①句后添加语句②
h=pd.DataFrame(h) #②
将对象转换为DataFrame格式
基础概念
·例题
基础概念
·例题
基础概念
·例题
基础概念
·例题
基础概念
·例题
基础概念
·例题(共36张PPT)
利用Pandas模块
处理数据
1. Pandas 提供了 Series 和 DataFrame 两种数据结构。
2. 引入 Pandas 模块的语句:
import pandas as pd
基础概念
pd是用户为导入模块取的别名。
·总括
基础概念
·Series
1. Series 是一种一维的数据结构,包含一个数组的数据 (values) 和一个与数据关联的索引 (index) ,索引值默认是从 0 起递增的整数。
2. Series 对象与列表的不同之处:列表只能默认索引从 0 开始,而 Series 可以指定索引,索引类型可以是字符串型。索引值不能重复,具有唯一性。
基础概念
·Series 对象属性
属性 说明
index Series 的下标索引,其值默认是从0起递增的整数,也可以指定为字符串型
values 存放 Series 值的一个数组
基础概念
·Series相关操作
1. 创建 Series 对象(默认索引)
import pandas as pd
s1=pd.Series([45,30,35,28])
print(s1)
运行结果:
2. 创建 Series 对象(指定索引)
import pandas as pd
s2=pd.Series([8,12,18,20],index= ["a","b","c","d"])
print(s2)
基础概念
·Series相关操作
3. Series 对象的检索与修改
运行结果:
输出索引值为 0 的值: print(s1[0])
输出索引值为"b"的值: print(s2["b"])
输出values小于33的值:print(s1[s1<33])
修改索引值为 1 的值为 10 : s1[1]=10
print(s1[1])
注意 s1 和 s2 索引的区别!!!
45
12
1 30
3 28
dtype: int64
10
基础概念
·Series相关操作
4. Series 对象的遍历
运行结果:
遍历 Series 对象的索引
for i in s2.index:
print(i)
遍历 Series 对象的值
for i in s2.values:
print(i)
a
b
c
d
8
12
18
20
基础概念
·Series相关操作
4. Series 对象的遍历
运行结果:
【注意】 遍历 Series 对象的值时 , s2.values 可以省略成 s2 ,因为Series 对象默认属性就是 values
10
20
30
类比于列表
基础概念
·DataFrame
DataFrame 是一种二维的数据结构,由1个索引列 (index) 和若干个数据列组成,每个数据列可以是不同的类型。
DataFrame 可以看作是共享同一个 index 的 Series 的集合。
基础概念
·DataFrame
基础概念
·DataFrame 对象属性
属性 说明
index DataFrame 的行索引
columns 存放各列的标题
values 存放二维数据的值
T 行列转置
基础概念
·DataFrame 相关操作
1. 创建 DataFrame 对象(利用字典)
运行结果:
注意:
代码中 index=[0,1,2],columns=["学号","性别","年龄"]可以省略,因为默认索引就是[0,1,2],列标题columns默认就是字典的键。
·DataFrame 相关操作
基础概念
4. DataFrame 对象的遍历及转置
运行结果:
for i in df.index:
print(i)
for i in df.columns:
print(i)
#df.columns可写成df
0
1
2
学号
性别
年龄
索引
列标题
·DataFrame 相关操作
基础概念
4. DataFrame 对象的遍历及转置
运行结果:

for i in df.values:
print(i)
['s001' '男' 16]
['s002' '女' 17]
['s003' '男' 18]
行列转置
df.values 本质上是二维列表,即 df.values=[['s001','男','16'], ['s002','女','17'],['s003','男','18']],其中 df.values[0]值为['s001','男','16'].
基础概念
·DataFrame 相关操作
5. 其他创建 DataFrame 对象方式
由二维列表创建
由 Excel / Csv 表格创建
基础概念
·DataFrame 常见函数
函数 说明
count( ) 返回非空(NaN)数据项的数量
sum( )、mean( ) 求和、求平均值,通过axis=0/1确定行列
max( )、min( ) 返回最大、最小值
describe( ) 返回各列的基本描述统计值,包含计数、平均数、标准差、最大值、最小值及4分位差
head( )、tail( ) 返回DataFrame的前n个、后n个数据记录
基础概念
·DataFrame 常见函数
函数 说明
groupby( ) 对各列或各行中的数据进行分组,然后可对其中每一组数据进行不同的操作
sort_values( ) 排序,通过axis=0/l确定行列
drop( ) 删除数据,通过axis=0/1确定行列
append( ) 在指定元素的结尾插入内容
insert( ) 在指定位置插入列
基础概念
·DataFrame 常见函数
函数 说明
rename( ) 修改列名或者索引
concat( ) 合并DataFrame对象
set_value( ) 根据行标签和列标签设置单个值
plot( ) 绘图
·DataFrame 相关操作
基础概念
演示
1. axis=0/1 的使用情况(默认 axis=0)
2. 获取数据方式
3. 筛选(略:多条件筛选)
4. 数据统计(略:多列求和)
5. 删除 drop( )
6. 添加行/列 append( )
7. 数据排序
8. 数据分组
9. 绘图
·DataFrame 相关操作
基础概念
演示
1. axis=0/1 的使用情况(默认 axis=0)
axis=0:数据在纵向发生变化,沿着每一列向下执行
axis=1:数据在横向发生变化,沿着每一行横向执行
具体应用:sum( ) , mean( ) , count( ) , drop( )
·DataFrame 相关操作
基础概念
演示
2. 获取数据方式
(1) 获取某列数据(以获取语文列为例)
属性记法:df.语文 字典记法:df["语文"]
注:列名是数字开头,只能用字典记法,即 df[1]
(2) 获取行数据
获取第 1 行:df[0:1] (切片)
获取第 n 行:df[n-1:n]
获取前/后 n 行:df.head(n) / df.tail(n)
注:head( ) / tail( ) 默认前/后5行
·DataFrame 相关操作
基础概念
演示
2. 获取数据方式
(3) 获取单个值
以索引获取: df.at[6,"总分"]
df.总分[6]
df["总分"][6]
以行数获取: df.values[6,2]
df.values[6][2]
注:除 values[ ] 外,其余均可用来修改值
·DataFrame 相关操作
基础概念
演示
3. 筛选(略:多条件筛选)
e.g. 筛选总分大于 650 的数据行
df[df.总分>650]
df[df["总分"]>650]
注:双层结构嵌套!!!
多条件筛选(单个条件用()括起来)
与:条件之间用&相连
或:条件之间用 | 相连
e.g. df[(df.语文>110)&(df.数学>110)]
·DataFrame 相关操作
基础概念
4. 数据统计(略:多列求和)(以数学列为例)
计算数据个数:df.数学.count(axis= )
计算平均值: df.数学.mean()
计算数据之和:df.数学.sum()
注:当然也可以用字典记法!
补充:
① 字符类型可求和(字符串相连)、计数;不可求平均(会报错)
但不同类型的数据(如字符和数字)不能直接一起求和
② 一般不对行进行统计(数据类型杂乱)
③ 行上某几列求平均 (了解)(增加列的方法)
df["平均分"]=df[["语文","数学","英语"]].mean(axis=1)
·DataFrame 相关操作
基础概念
演示
5. 删除 drop( )
删除列:df.drop("化学",axis=1)
删除行:df.drop(0)
6. 添加行/列 _append( )
添加行:df2=df._append({"姓名":"张三","班级":"G301","总分":670,"班级排名":3,"年级排名":50,"语文":130,"数学":134,"英语":120,"物理":90,"化学":88,"技术":100},ignore_index=True)
注:利用字典方式添加!
·DataFrame 相关操作
基础概念
演示
6. 添加行/列 _append( )
添加列:目前一般只能用“行上某几列求和”的方式
补充:①关于数据统计:在3.8及其以前的python中,遇到无法求平均的字符类型,会自动隐藏。故可以直接写df.mean()对每一列数据求平均,也可以通过df.总分=df.sum(axis=1)来增加总分列。但在3.11版本后的python中,则会报错。故只能通过df.语文.mean()来对语文列求平均。不过目前命题者并不会在这个方向来考察。
②关于变量赋值的操作
如果是对表格内容进行操作(增删改),则需给它一个变量赋值。如df=;df2=;如果是获得表格的内容,则可以直接print。
·DataFrame 相关操作
基础概念
演示
7. 数据排序
dft=df.sort_values("语文") #按语文成绩排序,默认升序
dfs=df.sort_values("数学",ascending=False)
注:① ascending=True 升序 ;False 降序(默认True)
② ignore_index=True 忽略原索引(默认False)
·DataFrame 相关操作
基础概念
演示
8. 数据分组(按班级分组求平均)
g=df.groupby("班级",as_index=False)
g=g.mean()
h=df.groupby("班级").mean()
注:① 分组后必须跟上数据统计的操作(求和、平均、计数)。否则无法输出(因为此时df对象处于待整理状态)
② as_index 是否将分组依据作为新索引(默认True)
若为True,则再访问班级列不能写h.班级;必须写h.index
(班级列已经作为索引,所以不存在了)
·DataFrame 相关操作
基础概念
演示
8. 数据分组(按班级分组求平均)
特别提醒:
如果分组后对某一列操作且将分组依据作为新索引,则新的df对象自动变为Series对象。
h=df.groupby("班级").英语.mean() #①
此时不再有班级和英语列。
须用h.index h.values来获得两列数据。
或者在①句后添加语句②
h=pd.DataFrame(h) #②
将对象转换为DataFrame格式
·例题
基础概念
·例题
基础概念
·例题
基础概念
·例题
基础概念
·例题
基础概念
·例题
基础概念
基础概念
1234567890
you
已知
已知
已知
已知print
·总括

展开更多......

收起↑

资源列表