4.2.2.2编程处理数据 学习任务单 2022—2023学年浙教版(2019)高中信息技术必修1

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

4.2.2.2编程处理数据 学习任务单 2022—2023学年浙教版(2019)高中信息技术必修1

资源简介

4.2.2 DataFrame 补充书本P121
1.DataFrame 创建
语法格式:pandas.DataFrame(数据,索引,列名) 索引默认为0,1,2,3,4..
列表方式创建(默认索引):
import pandas as pd df1=pd.DataFrame(['sas','22','33']) print(df1) #运行结果:
import pandas as pd df1=pd.DataFrame([['sas','22','33']]) print(df1)
import pandas as pd df1=pd.DataFrame([['sas','22','33'], ['jk','aa','dd']]) print(df1)
df2=pd.DataFrame([[11,22,33], [44,44,44], [55,66,55]]) print(df2)
列表方式创建(指定索引)
import pandas as pd df3=pd.DataFrame([[11,22,33],[44,44,44],[22,66,55]], columns=['a','b','c']) print(df3) #运行结果:
字典方式创建(默认列索引为_______________)
import pandas as pd data={'name':['林','王', '柯'], 'age':[18,19,21]} s4=pd.DataFrame(data,index=list('asd')) print(s4) #运行结果:
import pandas as pd data=[{'姓氏':'张','年龄':20}, {'姓氏':'王','年龄':15}, {'姓氏':'张','年龄':20}, {'姓氏':'刘','年龄':15}] s4=pd.DataFrame(data) print(s4)
2.从文件读取Dataframe
2.1从excel中读取dataframe
图1成绩.xlsx打开后的样子如上图:
图2从excel中读取dataframe
import pandas as pd df1=pd.read_excel('成绩.xlsx') #成绩.xlsx如图1所示 display(df1) #df1如图2所示
2.2从CVS中读取dataframe
import pandas as pd df2=pd.read_csv('成绩1.csv') display(df2) 成绩1.csv如图1,df2如图2
#查看列名 for i in df1.columns: print(i,end=' ') #运行结果: #查看索引 for i in df1.index: print(i,end=' ') #运行结果:
查看值: x=[] for i in df1.values: print(i) 如右图 x.append(i) print(x[1]) print(x[1][1]) print(x[2][5])
3.单元格操作
3.1查看单元格
①表名['列名'][行索引]
import pandas as pd
df=pd.read_excel('成绩.xlsx')
display(df)
读取小R的数学
print(df.at[9,'数学'])
print(df.iat[9,4])
print(df['数学'][4])
df['物理'][1]= 77 #运行后结果:_______________
[练1]若想查看小B的物理成绩应使用语句:
第1种:___________________________________________________________
第2种:___________________________________________________________
第3种:___________________________________________________________
3.2修改单个元素
将小D的数学成绩修改为66:___________________________________________
将小A的姓名修改为'apple':__________________________________________
将小B的外语修改为100:__________________________________________
4.关于列操作
4.1查看列:
import pandas as pd
df=pd.read_excel('成绩.xlsx')
display(df)
____________________________________________#查看数学成绩
____________________________________________#查看生物成绩
___________________________________________ #查看姓名,语文,外语
4.2删除列(真的删了吗?)
1.表名.drop('列名',axis=1)
2.表名.drop('列名',axis=1,inplace=True)
3.del 表名['列名'] 一次只能删除1列
4.表名.drop(['列名1','列名2'...],axis=1) 可同时删除多列
①df1.drop('性别',axis=1)
②df1.drop('性别',axis=1,inplace=True)
③del df1['性别']
[练2]
import pandas as pd df=pd.read_excel('成绩.xlsx') del df['生物'] d2= df.drop('性别',axis=1) 判断正误: df删除了‘生物’列和‘性别’列 df删除了‘生物’列 d2删除了‘生物’列和‘性别’列 d2删除了‘性别’列
4.3增加列
# 1.表名['新增的列名']=值
# 2.表名.insert(列号,'新增的列名',值)
df=pd.read_excel('成绩.xlsx')
df['总分1']=0
display(df) #运行后 如右图所示
[练3]
增加1列,列名为总分2,分数全为为0
________________________________________________________________
在性别和班级之间添加一列age,值为[11,12,13,14,15,16,14,17,18,19]:
_________________________________________________________________
删除性别这一列: _________________________________________________________________
修改总分1的值,值为df1['语文']+df1['数学']+df1['外语']:
_____________________________________________________
在末尾添加一列所有科目的总分:________________________________________
[提示:] df1.sum(axis=1) axis=1表示生成1列,对每行中所有数字求和形成列
#原始的df1 df1['合计']=df1.sum(axis=1) df1['合计']=df1.sum()
4.4重命名列:df.rename(columns={'age':'年龄'})
5.关于行操作:
5.1查看行
#查看行
#表名.head(3) 查看前3行
#表名[:4] 查看前4行
#表名[2:6] 查看第3行到第6行
#表名.tail(3) 查看后3行
#表名[-4:] 查看后4行
import pandas as pd
df1=pd.read_excel('成绩.xlsx')
print(df1) #如右图
查看某一行:___________________________________(结果如下图)
查看某几行:
①df1[0:4] 等价于 df1.head(4) 等价于 df1[:4]
②df1[-3:] 等价于 df1.tail(3) 等价于 df1[-3:] 等价于 df1.loc[7:9]
③选取第6到8行:df[5:8]
[练4]
选取该表的最后5行:①________________②______________③ ______________
选取该表的前5行:①____________________②_____________________
选取该表的第2到7行:①____________________②_____________________
5.2筛选满足条件的行
1.表名[表名['数学']==69] 找出该表中数学成绩为69的所有记录
2.表名[(表名['数学']>69)&(表名['语文']>69)] 找出该表中数学成绩>69且语文>69的所有记录
3.表名[(表名['数学']>69)|(表名['语文']>69)] 找出该表中数学成绩>69或语文>69的所有记录
1.选取班级为3班的数据:df1[df1["班级"]=="3班"]
[练5] 提示:且 用 & 符号,或用 |
选取性别为女的数据:______________________________________
选取语文成绩>100的数据:______________________________________
取语文成绩>100且化学>90: _________________________________________
取语文成绩>100或化学>90: _________________________________________
删除行
表名.drop(行索引,inplace=True)
表2=表名.drop(行索引)
表名.drop([行索引1, 行索引2,…],inplace=True) 删除多行
5.3行列算数运算 (axis=0 时 可以省略。)
#汇总函数describe() import pandas as pd df1=pd.read_excel('成绩.xlsx') df1.describe().round(2)
①count(axis=0/1) #统计列/行的非空(NaN)数据个数
②mean(axis=0/1) #统计列/行的平均值
③max(axis=0/1) #统计列/行的最大值
④min(axis=0/1) #统计列/行的最小值
import pandas as pd df4=pd.read_excel('成绩.xlsx') print(df4['班级'].count()) #求班级列数据个数 print(df4['数学'].mean()) #求数学平均分 print(df4['数学'].max()) #求数学最高分 print(df4['语文'].min()) #求数学最低分 运行结果:
import pandas as pd df4=pd.read_excel('成绩.xlsx') _______________________________________ #产生1列 列名:个人总分 _______________________________________ 插入语数外总分列 _______________________________________ 插入个人平均列并保留2位小数 _______________________________________ 插入平均分行 print(df4) #结果如下如所示
import pandas as pd df4=pd.read_excel('成绩.xlsx') df4.loc['学科平均分']=df4.mean().round(1)#插入1行,行索引:学科平均分 print(df4) #结果如下如所示
import pandas as pd df4=pd.read_excel('成绩.xlsx') df4.loc['学科平均分']=df4.mean().round(1)#插入1行,行索引:学科平均分 #插入1行,行索引:学科最高 df4.loc['学科最高']=______________________________________________ #插入1行,行索引:学科最低 df4.loc['学科最低']=______________________________________________ print(df4) #结果如下如所示
【综合实践】
___________________________________________#导入pandas 模块
df=________________________________________#读取excel文件'2021真题改.xls'
df= ________________________________________#删除“其他”这一列
选取(查询)1000/80米列的得分
选取学号,性别两列
选取学号为s0102这一行
选取第2行和第4行
选取最后3行
选取前3行
#发现s0102 的性别有误,修改为“男” (考点:修改单元格的值,写其中两种)
______________________="男" 或_______________________
#发现s0102 的身高有误,修改为173 (考点:修改单元格的值,写其中两种)
___________________________ 或_______________________
#在最后一列插入bmi指数BMI=体重÷身高 。(体重单位:千克,身高单位:米)
________________________________________________________________________
#在学号后插入班级,s=[1,2,3,1,3,2,1,3] (考点:插入列,用insert)
________________________________________________________________________
#筛选出肺活量得分大于90的同学
_____________________________________________________________________
#筛选出肺活量得分大于90且性别为女生的同学
_____________________________________________________________________
#插入一行平均数:(参考上一页的插入行)
_____________________________________________________________________

展开更多......

收起↑

资源预览