课时 10 pandas模块的两种数据结构 课件(共22张PPT)2027届浙江选考信息技术总复习

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

课时 10 pandas模块的两种数据结构 课件(共22张PPT)2027届浙江选考信息技术总复习

资源简介

(共22张PPT)
课时10 pandas模块的两种数据结构
一、pandas模块
1.pandas提供了Series和DataFrame两种数据结构。
2.在Python中引入pandas模块的方法为:import pandas as pd(pd是为方便调用而给pandas取的别名)。
1. 概念:是一种一维的数据结构,包含一个数组的数据和一个与数据关联的
    (index),索引值默认是从    起递增的整数。
2. 创建方式:列表、字典等可以用来创建Series数据结构,与列表不同的是,Series的索引可以指定,类型可以为    型。
3.Series对象常用属性。
索引
 0
二、Series数据结构
属性 说明
index Series的下标索引,其值默认是从0起递增的整数
values 存放Series值的一个数组
 字符串
1. 概念:是一种二维的数据结构,由1个索引列(index)和若干个数据列组成,每个数据列可以是不同的类型。DataFrame可以看作是共享同一个index的    的集合。
2.创建方式。
(1)通常用一个相等    的列表或字典来创建。
(2)直接读取二维数据文件创建DataFrame对象。如使用read_excel()函数读取Excel文件创建DataFrame对象,也可以使用to_excel()函数创建Excel文件保存数据。
3.DataFrame对象常用属性。
Series
长度
三、DataFrame数据结构
属性 说明
index DataFrame的行索引
columns 存放各列的列标题
values 存放值的二维数据
T 行列转置
函数 说明
count() 返回非空(NaN)数据项的数量
sum()、mean() 求和、    ,通过axis=0/1确定行列
max()、min() 返回最大、最小值
describe() 返回各列的基本描述统计值,包含计数、平均数、标准差、最大值、最小值及4分位差
head()、tail() 返回DataFrame的前n个、后n个数据记录,若n省略,则默认返回前    行、后5行
groupby() 对各列或各行中的数据进行    ,然后可对其中每一组数据进行不同的操作
sort_values() 排序,通过axis=0/1确定行列
drop() 删除数据,通过axis=0/1确定行列
insert() 在指定位置插入列
rename() 修改列名或者索引
concat() 合并DataFrame对象
plot() 绘图
4.DataFrame常用函数。
平均值
5
分组
典例 1 有如下Python程序段:
import pandas as pd
s=pd.Series([2,6,7,4],index=["s01","s02","s03","s04"])
a=s["s01"]+s["s03"]
b=s[1]-s[3]
print(a+b)
执行该程序段后,输出的结果是 (  )
A.2 B.7
C.9 D.11
D
√
题型导向一 Series数据结构
胜券点拨1
明考向 本题主要考查选取Series对象中的值
审关键 Series的常用属性
考场思 维快闪 理解Series的下标索引index,s["s01"]的值是2,s["s03"]的值是7,s[1]的值是6,s[3]的值是4,a=2+7=9,b=6-4=2
典例 2 有如下Python程序段:
import pandas as pd
data={"姓名":["小王","小张","小李"],"性别":["女","女","男"],"信息分数": [28,46,37]}
df1=pd.DataFrame(data,columns=["姓名","信息分数","性别"])
p=df1[1:2]
t=df1.at[2,"姓名"]
print(df1)
执行该程序段后,下列说法正确的是 (  )
A.变量t的值为"小张"
B.输出结果中,第2列(除索引列)为“性别”
C.对象p中只有一行记录
D.执行语句“df1["信息分数"]=40”后,第一个人的信息分数会被修改为40
C
√
题型导向二 DataFrame数据结构
胜券点拨2
明考向 本题主要考查对DataFrame对象的操作
审关键 df1对象的内容、各操作的效果
考场思维快闪 A df1对象的行索引index为默认索引0、1、2,df1.at[2,"姓名"]即选取df1对象中第3行(行索引为2)、“姓名”列的值
B 输出结果中,除索引列外,第1列是“姓名”,第2列是“信息分数”,第3列是“性别”
C df1[1:2]查看指定的行数据,包含起始值,不包含终值
D “df1["信息分数"]=40”为赋值语句,执行该语句后,所有的信息分数都会被修改为40
1.创建Series对象。
列表 字典
默认索引 自定义索引
s=pd.Series([18,29,39]) print(s) s=pd.Series([18,29,39],index=["a","b","c"]) print(s) s=pd.Series({"a":18,"b":29,"c":39})
print(s)
0 18 1 29 2 39 dtype: int64 a 18 b 29 c 39 dtype: int64 a 18
b 29
c 39
dtype: int64
通法一 Series对象操作实例(引入pandas模块代码为“import pandas as pd”)
2.输出Series对象中指定索引的数据行。
列表(s[index]) 字典(s[key])
s=pd.Series([18,29,39]) print(s[1]) s=pd.Series({"a":18,"b":29,"c":39})
print(s["c"])
29 39
3.查看Series对象的属性值(s=pd.Series([18,29,39]))。
index values 默认
for i in s.index: print(i,end=" ") for i in s.values: print(i,end=" ") for i in s:
print(i,end=" ")
0 1 2 18 29 39 18 29 39
4.修改Series对象中的值。
列表(s[index]) 字典(s[key])
s=pd.Series([18,29,39]) s[1]=33 print(s) s=pd.Series({"a":18,"b":29,"c":39})
s["b"]=33
print(s)
0 18 1 33 2 39 dtype: int64 a 18
b 33
c 39
dtype: int64
1.创建DataFrame对象。
通法二 DataFrame对象操作实例一(引入pandas模块代码为“import pandas as pd”)
2.查看DataFrame对象的属性值(以1中df1对象为例),并将行、列转置。
index for i in df1.index: print(i,end=" ") 1号 2号 3号
columns for i in df1.columns: print(i,end=" ") 姓名语文数学
values for i in df1.values: print(i,end=" ") ["王一" 88 90] ["李二" 99 93] ["吴三" 92 91]
df.T print(df1.T) 1号 2号 3号
姓名 王一 李二 吴三
语文 88 99 92
数学 90 93 91
3.检索(选取)列数据方法(以1中df1对象为例)。
4.检索(选取)行数据方法(以1中df1对象为例)。
一行 print(df1[1:2]) 姓名 语文 数学
2号 李二 99 93
多行 print(df1[1:3]) 姓名 语文 数学
2号 李二 99 93
3号 吴三 92 91
条件 属性 print(df1[df1.语文>95]) 姓名 语文 数学
2号 李二 99 93
字典 print(df1[df1["语文"]>95])
前几行 print(df1.head(2)) 姓名 语文 数学
1号 王一 88 90
2号 李二 99 93
后几行 print(df1.tail(2)) 姓名 语文 数学
2号 李二 99 93
3号 吴三 92 91
5.检索(选取)数据的其他方法(以1中df1对象为例)。
行+列 属性(df.列名[行索引]) print(df1.姓名[2]) 吴三
字典(df["列名"][行索引]) print(df1["姓名"][1]) 李二
单个值 df.at[index值,"列名"] print(df1.at["2号","语文"]) 99
最值 max() print(df1.数学.max()) 93
min() print(df1.语文.min()) 88
6.修改DataFrame对象中的数据(以1中df1对象为例)。
列 行 单个值
df1.数学=[100,95,99] print(df1) df1[1:2]=["李二",90,98] print(df1) df1.at["3号","数学"]=95
print(df1)
姓名 语文 数学 1号 王一 88 100 2号 李二 99 95 3号 吴三 92 99 姓名 语文 数学 1号 王一 88 90 2号 李二 90 98 3号 吴三 92 91 姓名 语文 数学
1号 王一 88 90
2号 李二 99 93
3号 吴三 92 95
1.有如下Python程序段:
import pandas as pd
s1=pd.Series([162,175,183],index=["s01","s02","s03"])
for i in s1:
print(i)
执行该程序段后,输出的结果是 (  )
该程序段中for循环的功能为查看s1对象中的values属性值,故输出的结果是:
一、Series数据结构
A.162
175
183 B.s01 162
s02 175
s03 183 C.s01
s02
s03 D.162 175 183
162
175
183
A 
√
2.有如下Python程序段:
import pandas as pd
data=[[120,140,135],[118,145,103],[110,132,98]]
xm,km=["小明","小军","小豪"],["语文","数学","英语"]
df1=pd.DataFrame(data,index=xm,columns=km)
下列说法正确的是 (  )
A.print(df1.英语)显示的第一行数据是:0 135
B.print(df1["数学"])显示的第一行数据是:小豪 132
C.print(df1[df1.语文<120])显示的第一行数据是:小军 118 145 103
D.print(df1.sort_values("语文"))显示的第一行数据是:小明 120 140 135
print(df1.英语)显示的第一行数据是:小明 135。print(df1["数学"])显示的第一行数据是:小明 140。print(df1.sort_values("语文"))显示的第一行数据是:小豪 110 132 98。
二、DataFrame数据结构
C 
√
3.有如下Python程序段:
import pandas as pd
fruit=pd.Series(["watermelon","peach","lemon","apple"],index=["s1","s2","s3","s4"])
a=fruit["s1"]
b=fruit[2]
res=a+b
print(len(res))
执行该程序段后,输出的结果是 (  )
A.10 B.11 C.12 D.15
根据生成的Series对象fruit可知,a的值是"watermelon",b的值是"lemon",a+b表示将2个字符串拼接,所以res的值是"watermelonlemon",故输出的结果是15。
D 
√
4.有如下Python程序段:
import pandas as pd
data={"姓名":["小明","小夏","小静","小华"],"语文":[90,66,80,78],"英语":
[98,86,92,75]}
df1=pd.DataFrame(data,columns=["姓名","语文","英语"])
df2=df1[df1.语文>=80]
ans=df2.英语.mean()
print(ans)
执行该程序段后,输出的结果是 (  )
A.83 B.85 C.87.5 D.95.0
该程序段的功能为求出DataFrame对象df1中“语文”列的值大于等于80的数据行赋值给df2,最后求出对象df2中“英语”列的平均值,故输出的结果是95.0。
D 
√

展开更多......

收起↑

资源预览