版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
編程處理數(shù)據(jù)-pandas第四章第四章Python常用數(shù)據(jù)處理拓展模塊Numpy模塊:是科學(xué)運算的基礎(chǔ)庫,主要提供科學(xué)計算中常用的隨機數(shù)、數(shù)組運算等基礎(chǔ)模塊Scipy模塊:基于numpy構(gòu)建的一個模塊,增強了在高等數(shù)學(xué)、信號處理、圖像處理、統(tǒng)計等方面的能力Pandas模塊:基于numpy實現(xiàn),主要用于數(shù)據(jù)的處理與分析,提供了大量處理數(shù)據(jù)的函數(shù)和方法,能方便操作大型數(shù)據(jù)集Matplotlib模塊:繪圖庫,快速繪圖和設(shè)置圖標(biāo)的坐標(biāo)軸、坐標(biāo)軸刻度、圖例等Pandas模塊提供了Series和DataFrame兩種數(shù)據(jù)結(jié)構(gòu)。使用這兩種數(shù)據(jù)結(jié)構(gòu),可以完成數(shù)據(jù)的整理、計算、統(tǒng)計、分析以及簡單可視化。Pandas模塊Series(一維結(jié)構(gòu)):1個索引列(index)+1個數(shù)據(jù)(value)列.索引值默認(rèn)是從0起遞增的整數(shù)。列表,字典等都可以用來創(chuàng)建Series數(shù)據(jù)結(jié)構(gòu),與列表不同的是,Series的索引可以指定,類型可以是字符串類型。Dataframe(二維結(jié)構(gòu)):1個索引列+n個數(shù)據(jù)列.
DataFrame是一種類似于關(guān)系表的表格型數(shù)據(jù)結(jié)構(gòu),DataFrame對象是一個二維表格,其中每列中的元素類型必須一致,而不同的列可以擁有不同的元素類型。Pandas模塊Series(一維結(jié)構(gòu)):創(chuàng)建、查看、修改Dataframe(二維結(jié)構(gòu)):創(chuàng)建、查看、修改、添加、刪除、
分組、排序、求和、求平均.......Pandas模塊——Series序列創(chuàng)建1.創(chuàng)建Series對象——以列表為數(shù)據(jù)對象語法:s=pd.Series(value,index)參數(shù):value:表示數(shù)據(jù),支持?jǐn)?shù)值、列表、字典等;index:表示索引(行標(biāo)簽)importpandasaspdpds1=pd.Series([45,30,35,28])print(pds1)0451
302
353
28左列:index右列:valuesPandas模塊——Series序列創(chuàng)建1.以列表為數(shù)據(jù)對象創(chuàng)建,指定索引語法:s=pd.Series(value,index)參數(shù):value:表示數(shù)據(jù),支持?jǐn)?shù)值、列表、字典等;index:表示索引(行標(biāo)簽)pds2=pd.Series(alist,index=['學(xué)生甲','學(xué)生乙','學(xué)生丙','學(xué)生丁'])print(pds2)學(xué)生甲45學(xué)生乙30學(xué)生丙35學(xué)生丁28索引可以是字符串類型Pandas模塊——Series序列創(chuàng)建通過字典方式創(chuàng)建importpandasaspddata={"i1":1,"i2":2,"i3":3,"i4":4}print(ps3)pds3=pd.Series(data)print(pds3)i11i22i33i44dtype:int64Pandas模塊——Series序列創(chuàng)建通過字典方式創(chuàng)建,指定索引data={"i1":1,"i2":2,"i3":3,"i4":4}ps3=Series(data,index=['i2','i1','i3','i4'])print(ps3)i22i11i33i44dtype:int64查看、選取Series對象中的數(shù)據(jù)通過index、values屬性訪問importpandasaspdps=pd.Series([45,30,35,28],index=['學(xué)生甲','學(xué)生乙','學(xué)生丙','學(xué)生丁'])print(ps.index)Index(['學(xué)生甲','學(xué)生乙','學(xué)生丙','學(xué)生丁'],dtype='object')查看、選取Series對象中的數(shù)據(jù)通過index、values屬性訪問import
pandas
as
pdps=pd.Series([45,30,35,28],index=['學(xué)生甲','學(xué)生乙','學(xué)生丙','學(xué)生丁'])print(ps.values)[45,30,35,28]查看、選取Series對象中的數(shù)據(jù)索引訪問import
pandas
as
pdps=pd.Series([45,30,35,28],index=['學(xué)生甲','學(xué)生乙','學(xué)生丙','學(xué)生丁’])print(ps[['學(xué)生甲','學(xué)生乙']])學(xué)生甲45學(xué)生乙30修改Series對象中的數(shù)據(jù)通過賦值語句修改importpandasaspdps=pd.Series([45,30,35,28],index=['學(xué)生甲','學(xué)生乙','學(xué)生丙','學(xué)生丁'])ps['學(xué)生甲']=42print(ps['學(xué)生甲'])42print(ps[0])課堂練習(xí)有Python程序段如下:importpandasaspdser=pd.Series([1,3,5,7])print(ser.index)該程序段運行后輸出結(jié)果為()AA.0B.1C.1D.01123132352534737課堂練習(xí)下列有關(guān)Series說法錯誤的是()A.Series中index屬性,默認(rèn)值從0開始B.Series中必須指定indexC.兩個index不同的Series可以相加D.Series中的index可以是字符串類型B3.某班級計劃在某商店購買秋季運動會的獎品,獎品數(shù)據(jù)如下:商品名稱商品價格(元)購買數(shù)量筆記簿1525鉛筆250橡皮530三角尺6.510圓規(guī)910課堂練習(xí)請你用pandas的Series數(shù)據(jù)結(jié)構(gòu),存儲以上表格數(shù)據(jù)?!飫?chuàng)建一個名為s1的變量,用于存儲商品價格,
并指定它們的索引分別為:"筆記簿","鉛筆","橡皮","三角尺","圓規(guī)"?!飫?chuàng)建一個名為s2的變量,用于存儲購買數(shù)量,并指定它們的索引分別為:"筆記簿","鉛筆","橡皮","三角尺","圓規(guī)"。★請分別計算每種商品的購買金額并存儲到s3?!锊樵儐喂P購買金額超過100元的商品有哪些?購買金額分別是多少?★該商店正進(jìn)行打折促銷活動:一次購買100元以上200元及以下的商品9折優(yōu)惠;一次購買超過200元的商品,其中200元9折優(yōu)惠,超過200元的部分8折優(yōu)惠,請問,該班級實際共消費了多少金額?商品名稱商品價格(元)購買數(shù)量筆記簿1525鉛筆250橡皮530三角尺6.510圓規(guī)910課堂練習(xí)Thanks錄目01創(chuàng)建DataFrame對象02DataFrame對象查看DataFrame對象03修改DataFrame對象04添加DataFrame對象中行列數(shù)據(jù)05刪除DataFrame對象中行列數(shù)據(jù)06DataFrame對象分組操作07DataFrame對象排序操作08DataFrame對象其他操作09Pandas模塊——DataFrame數(shù)據(jù)結(jié)構(gòu)維度組成部分屬性Series一維1個索引列(index)1個數(shù)據(jù)列(values)index、valuesDataFrame二維1個索引列(index)若干個數(shù)據(jù)列組成values、indexcolumns、T同列中的元素類型必須一致,不同的列元素類型可以不同創(chuàng)建方法1:以相等長度的列表創(chuàng)建語法:s=pd.DataFrame(value,index,columns)importpandasaspddata=[['學(xué)生甲',100,110,45],['學(xué)生乙',89,120,30],['學(xué)生丙',110,125,35],['學(xué)生丁',105,135,28]]df=pd.DataFrame(data,columns=['name','語文','數(shù)學(xué)','信息'])print(df)二、Pandas模塊——創(chuàng)建DataFrame對象name語文數(shù)學(xué)信息0學(xué)生甲100110451學(xué)生乙89120302學(xué)生丙110125353學(xué)生丁1051352801230學(xué)生甲100110451學(xué)生乙89120302學(xué)生丙110125353學(xué)生丁10513528columns創(chuàng)建方法2:以相等長度的列表組成的字典形式創(chuàng)建行索引:index,默認(rèn)從0開始列索引:coulmns二維數(shù)據(jù):values二、Pandas模塊——創(chuàng)建DataFrame對象創(chuàng)建方法3:指定行索引行索引:index二、Pandas模塊——創(chuàng)建DataFrame對象二、Pandas模塊——創(chuàng)建DataFrame對象_從excel文件讀入二維數(shù)據(jù)表import
pandas
as
pddf=pd.read_excel(‘a(chǎn)bc.xlsx’)print(df)創(chuàng)建方法4:從excel文件讀入二維數(shù)據(jù)表,pd.read_excel()二、Pandas模塊——創(chuàng)建DataFrame對象_DataFrame對象導(dǎo)出excelimportpandasaspddata={'xm':['張','王','李'],'xb':['男','女','男'],'nl':[12,23,14]}df=pd.DataFrame(data)df.to_excel('test.xlsx')print(df)★to_excel():用DataFrame創(chuàng)建excel查看方法1:通過索引切片查看指定行數(shù)據(jù)importpandasaspddf=pd.read_excel('test.xlsx')print(df[2:3])Pandas模塊——查看DataFrame行數(shù)據(jù)查看方法2:通過索引切片、dataFrame的head()函數(shù)和tail()函數(shù),查看行數(shù)據(jù)importpandasaspddf=pd.read_excel('test.xlsx')print(df[2:5])print('----------------------')print(df.head(2))print('----------------------')print(df.tail(3))print('----------------------')Pandas模塊——查看DataFrame行數(shù)據(jù)查看方法1:通過屬性檢索,查看列數(shù)據(jù)查看方法2:通過字典檢索,查看列數(shù)據(jù)Pandas模塊——查看DataFrame列數(shù)據(jù)查看方法3:訪問滿足特定條件行數(shù)據(jù)importpandasaspddf=pd.read_excel('test.xlsx')print(df[df['英語']>110])importpandasaspddf=pd.read_excel('test.xlsx')print(df[df.英語>110])Pandas模塊——查看DataFrame行數(shù)據(jù)查看方法:at[]方法獲取某行某列的值
對象名.at[行索引,"列標(biāo)簽"]Pandas模塊——查看DataFrame一個數(shù)值查看方法1:循環(huán)查看行索引importpandasaspddf=pd.read_excel('cj1.xlsx')foriindf.index:print(i)查看方法2:循環(huán)查看數(shù)據(jù)importpandasaspddf=pd.read_excel('cj1.xlsx')foriindf.values:print(i)查看方法3:循環(huán)查看列標(biāo)題importpandasaspddf=pd.read_excel('cj1.xlsx')foriindf.columns:print(i)Pandas模塊——查看DataFrame數(shù)據(jù)可以簡寫為df:查看方法5:直接用關(guān)鍵字查看相關(guān)數(shù)據(jù)importpandasaspddf=pd.read_excel('cj1.xlsx')print(df.index)print(df.values)print(df.columns)print(df)Pandas模塊——查看DataFrame數(shù)據(jù)單列單行單個值修改df.語文=[87,90,102,110]df['語文']=[999,90,102,110]df[0:1]=[“x”,99,99,99]df.at[0,“姓名”]=“Sunny”顯示name語文數(shù)學(xué)信息0學(xué)生甲87110451學(xué)生乙90120302學(xué)生丙102125353學(xué)生丁11013528name語文數(shù)學(xué)信息0x9999991學(xué)生乙89120302學(xué)生丙110125353學(xué)生丁10513528name語文數(shù)學(xué)信息0sunny100110451學(xué)生乙89120302學(xué)生丙110125353學(xué)生丁10513528Pandas模塊——修改DataFrame列數(shù)據(jù)修改方法1:通過屬性或字典檢索修改列數(shù)據(jù)Pandas模塊——修改DataFrame列數(shù)據(jù)修改方法2:通過索引切片修改行數(shù)據(jù)importpandasaspddf=pd.read_excel('test.xlsx')df[2:3]=[3,'李華',34,23,234,45]print(df)Pandas模塊——修改DataFrame列數(shù)據(jù)修改方法3:通過at[]方法修改單個數(shù)據(jù)importpandasaspddf=pd.read_excel('test.xlsx')df.at[3,'技術(shù)']=98print(df)Pandas模塊——修改DataFrame列數(shù)據(jù)修改方法4:轉(zhuǎn)置importpandasaspddf=pd.read_excel('test.xlsx')print(df.T)Pandas模塊——修改DataFrame列數(shù)據(jù)DataFrame常用函數(shù)函數(shù)說明count()返回非空(NaN)數(shù)據(jù)項的數(shù)量;一般按列求;sum()mean()max()min()求和、求平均、求最大、求最??;一般按列求;groupby()按列或行分組統(tǒng)計;一般按列求;head()tail()返回前n個、后n個數(shù)據(jù)記錄;drop()按行列刪除數(shù)據(jù),通過axis=0/1確定行列;append()在末尾添加1行或多行數(shù)據(jù);insert()在指定位置插入1列;rename()修改列標(biāo)簽或行索引;sort_values()排序,通過axis=0/1確定行列;plot()繪圖Pandas模塊——處理數(shù)據(jù)的DataFrame常用函數(shù)append()函數(shù)添加行數(shù)據(jù)語法:對象名.append(value,ignore_index=True/False)五、Pandas模塊——DataFrame添加行數(shù)據(jù)ignore_index:如果設(shè)置為true,則無視表的index,直接合并,合并后生成新的indexignore_index=Falseignore_index=True五、Pandas模塊——DataFrame添加行數(shù)據(jù)importpandasaspddf=pd.read_excel('test.xlsx')df.insert(3,"性別",['男','女','男','男','男','女',])print(df)insert(i,columns,data)添加列數(shù)據(jù)
語法:對象名.insert(插入位置,列標(biāo)簽,添加數(shù)據(jù)或數(shù)據(jù)列表)五、Pandas模塊——DataFrame添加行數(shù)據(jù)刪除數(shù)據(jù):drop()函數(shù)刪除行數(shù)據(jù)或列數(shù)據(jù)
語法:對象名.drop(index/columns,axis=0/1)importpandasaspddf=pd.read_excel('cj1.xlsx')print(df)df2=df.drop(0)print(df2)df3=df.drop('學(xué)號',axis=1)print(df3)*僅在drop()函數(shù)中axis=0表示刪除行;axis=1表示刪除列df2=df.drop(0,axis=0)六、Pandas模塊——DataFrame刪除數(shù)據(jù)函數(shù)當(dāng)axis省略時,默認(rèn)axis=0,即默認(rèn)刪除行name班級語文數(shù)學(xué)信息0學(xué)生甲1班100110451學(xué)生乙2班89120302學(xué)生丙1班110125353學(xué)生丁2班10513528df1=df.groupby(“班級”,as_index=False).sum()df2=df.groupby(“班級”,as_index=True).sum()班級語文數(shù)學(xué)信息01班2102358012班19425558班級語文數(shù)學(xué)信息1班210235802班19425558df1df2七、Pandas模塊——DataFrame數(shù)據(jù)分組函數(shù)as_index=True時,“as_index”就類似表示將組標(biāo)簽(類似“主鍵”)作為索引;as_index=False時,索引為0,1,2,3…分組函數(shù):groupby()函數(shù)
語法:對象名.drop(主鍵,as_index=True/False)importpandasaspddf=pd.read_excel('cj2.xlsx')df1=df.groupby('性別',as_index=False).mean()print(df1)數(shù)據(jù)分組:groupby()函數(shù)分組數(shù)據(jù)groupby(labels,axis=0,as_index=True)mean()求平均值七、Pandas模塊——DataFrame數(shù)據(jù)分組函數(shù)importpandasaspddf=pd.read_excel('cj1.xlsx')df1=df.sort_values('總分',ascending=True)print(df1)數(shù)據(jù)排序:sort_values()函數(shù)排列數(shù)據(jù)
語法:對象名.sort_values(主鍵,ascending=True=True/False)ascendng=True:升序排序ascendng=False:降序排序八、Pandas模塊——DataFrame數(shù)據(jù)排序df1=df.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023年楊凌示范區(qū)創(chuàng)新創(chuàng)業(yè)園發(fā)展有限公司招聘考試真題
- 臨滄市鳳慶縣招聘社區(qū)專職工作者真題
- 加油站工程HSE作業(yè)指導(dǎo)書
- 有關(guān)大學(xué)生軍訓(xùn)心得體會400字8篇
- 氯酸鹽技改項目可行性研究報告
- 潤滑油項目可行性研究報告
- 部隊學(xué)車個人申請書
- 商標(biāo)授權(quán)使用協(xié)議書最簡單三個步驟
- 商業(yè)合作框架協(xié)議書
- 金融專業(yè)實習(xí)報告范文
- 2023光伏發(fā)電工程項目安全文明施工方案
- 帶式輸送機膠帶安裝
- 陳育民對FLAC3D常見問題的解答概要
- 專利文獻(xiàn)檢索方法與步驟課件
- 第5講-申論大作文課件
- 大咯血的護(hù)理及急救課件
- 讀《學(xué)生的精神》有感
- Module 5 Museums模塊測試題二(含答案)(外研版九年級上冊)
- 張家爺爺?shù)男』ü?
- 怎樣通知最快(課件)五年級下冊數(shù)學(xué)人教版
- 《通用量具培訓(xùn)》教材課件
評論
0/150
提交評論