資源簡介 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且性別為女生的同學_____________________________________________________________________#插入一行平均數:(參考上一頁的插入行)_____________________________________________________________________ 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫