资源简介 4.2.2 DataFrame 补充书本P1211.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.从文件读取Dataframe2.1从excel中读取dataframe图1成绩.xlsx打开后的样子如上图:图2从excel中读取dataframeimport pandas as pd df1=pd.read_excel('成绩.xlsx') #成绩.xlsx如图1所示 display(df1) #df1如图2所示2.2从CVS中读取dataframeimport 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 pddf=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 pddf=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']=0display(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 pddf1=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且性别为女生的同学_____________________________________________________________________#插入一行平均数:(参考上一页的插入行)_____________________________________________________________________ 展开更多...... 收起↑ 资源预览