版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Pandas基礎(chǔ)知識實(shí)驗(yàn)八課程學(xué)習(xí)目標(biāo)了解Pandas的基礎(chǔ)知識初步了解Pandas的數(shù)據(jù)類型Pandas簡介Pandas為Python+data+analysis的組合縮寫,是Python中基于NumPy和Matplotlib的第三方數(shù)據(jù)分析庫,與NumPy和Matplotlib共同構(gòu)成了Python數(shù)據(jù)分析的基礎(chǔ)工具包,享有“數(shù)據(jù)分析三劍客”之名。正因?yàn)镻andas是在NumPy基礎(chǔ)上實(shí)現(xiàn),其核心數(shù)據(jù)結(jié)構(gòu)與NumPy的Ndarray十分相似,但Pandas與NumPy的關(guān)系不是替代,而是互為補(bǔ)充。Pandas在數(shù)據(jù)處理上比NumPy更加強(qiáng)大和智能。Pandas的特點(diǎn)Pandas是基于NumPy的一種工具,為了解決數(shù)據(jù)分析任務(wù)而創(chuàng)建。Pandas納入了大量庫和一些標(biāo)準(zhǔn)的數(shù)據(jù)模型,提供了高效地操作大型數(shù)據(jù)集所需的工具。Pandas提供了大量能使用戶快速便捷地處理數(shù)據(jù)的函數(shù)和方法。Pandas是使Python成為強(qiáng)大而高效的數(shù)據(jù)分析環(huán)境的重要因素之一。Pandas的強(qiáng)大讓人毋庸置疑,一個(gè)集數(shù)據(jù)審閱、處理、分析、可視化于一身的工具,非常好用。Pandas處理數(shù)據(jù)分析的流程讀取數(shù)據(jù):Pandas提供強(qiáng)大的IO讀取工具,csv格式、Excel文件、數(shù)據(jù)庫等都可以非常簡便地讀取,對于大數(shù)據(jù),pandas也支持大文件的分塊讀取。數(shù)據(jù)清洗:如何有效處理缺失值,Pandas把各種類型數(shù)據(jù)類型的缺失值統(tǒng)一稱為NaN,Pandas提供許多方便快捷的方法來處理這些缺失值NaN。建模階段:Pandas自動且明確的數(shù)據(jù)對齊特性,非常方便地使新的對象可以正確地與一組標(biāo)簽對齊,有了這個(gè)特性,Pandas就可以非常方便地將數(shù)據(jù)集進(jìn)行拆分-重組操作。結(jié)果展示:Pandas提供了內(nèi)置的繪圖功能,可以直接使用DataFrame和Series對象的plot方法進(jìn)行快速的可視化,同時(shí)也可以與Matplotlib結(jié)合進(jìn)行更加復(fù)雜的可視化操作。讀取數(shù)據(jù)-數(shù)據(jù)清洗-分析建模-結(jié)果展示Pandas和NumPy的區(qū)別NumPy和Pandas在數(shù)據(jù)處理方面各有優(yōu)劣,需要根據(jù)實(shí)際需求選擇合適的庫。如果需要處理結(jié)構(gòu)化數(shù)據(jù),如表格型數(shù)據(jù)或時(shí)間序列數(shù)據(jù)等,可以使用Pandas;如果需要進(jìn)行數(shù)值計(jì)算、模型建立等科學(xué)計(jì)算問題,則可以使用NumPy。在實(shí)際應(yīng)用中,兩者也可以結(jié)合使用,以充分發(fā)揮各自的優(yōu)勢。如果裝了Anaconda,Pandas不用單獨(dú)安裝即可使用。在JupterNotebook中,通常使用如下方法導(dǎo)入Pandas包:importpandasaspdPandas核心數(shù)據(jù)結(jié)構(gòu)Pandas核心數(shù)據(jù)結(jié)構(gòu)有兩種——一維的Series和二維的DataFrame,兩者的關(guān)系像表格中的行與整個(gè)表的關(guān)系。Series即一維數(shù)組,與Python中標(biāo)準(zhǔn)數(shù)據(jù)結(jié)構(gòu)List很像,可以把它想象為表格中的列。對于列數(shù)據(jù),用戶可以做什么?可以取任意行的數(shù)據(jù)、可以取指定行的數(shù)據(jù)、還可以修改相應(yīng)的數(shù)據(jù),這在Series中也可以實(shí)現(xiàn),對應(yīng)的分別是Series的切片、索引和修改。DataFrame即二維數(shù)組,也可以說是表。同樣的也可以把它理解成整個(gè)表格。想象一下,對于表格數(shù)據(jù),用戶可以做什么?可以對列增刪改、可以對行增刪改、當(dāng)然對“單元格”數(shù)據(jù)也可以操作。Pandas的主要功能Pandas支持了非常豐富的文件類型,即它可以讀取和保存多種類型的數(shù)據(jù),如:excel文件、csv文件、json文件、sql文件,甚至html文件等,這對用戶獲取數(shù)據(jù)很方便。Pandas數(shù)據(jù)結(jié)構(gòu)data:一維數(shù)組,ndarray類型或普通列表等;index:數(shù)據(jù)索引標(biāo)簽,如果不指定默認(rèn)從0開始;dtype:數(shù)據(jù)類型;name:設(shè)置數(shù)據(jù)集名稱;copy:是否拷貝數(shù)據(jù),默認(rèn)為False。一維數(shù)組Seriespandas.Series(data,index,dtype,name,copy)Series類似于表格中的行或列,可以保存任何數(shù)據(jù)類型。例8.1通過列表創(chuàng)建一個(gè)數(shù)組存儲幾個(gè)人的名字。importpandasaspd#創(chuàng)建一個(gè)包含幾個(gè)人的名字的列表aa=
["Zhangsan","Lisi","Wangwu"]
#使用pd.Series將列表a轉(zhuǎn)換為Pandas的Series對象#Series是一種類似于一維數(shù)組的對象,帶有標(biāo)簽(索引)print(pd.Series(a))一維數(shù)組SeriesPandas數(shù)據(jù)結(jié)構(gòu)觀察結(jié)果可以發(fā)現(xiàn),其自動編排索引,且默認(rèn)索引從0開始,但是發(fā)現(xiàn)這里dtype是object,變量a中輸入的是str類型,為什么會出現(xiàn)這個(gè)問題呢?其原因在于ndarray,在ndarray中,每個(gè)元素必須要有相同的字節(jié),如int64,float64都是八字節(jié),而str類型的長度是不固定的,因此它們所占的字節(jié)也不固定,所以類型就變成了object。例8.2將其他信息存入Series。importpandasaspd#創(chuàng)建一個(gè)包含幾個(gè)人的名字的列表aa=
["Zhangsan","Lisi","Wangwu"]#使用pd.Series將列表a轉(zhuǎn)換為Pandas的Series對象
#-index指定了Series的索引標(biāo)簽為"1","2","3"#-name指定了Series的名稱為"student"#-copy=1表示將列表a復(fù)制一份作為Series的基礎(chǔ)數(shù)據(jù)b=pd.Series(a,index=["1","2","3"],name="student",copy=1)
print(b)
一維數(shù)組SeriesPandas數(shù)據(jù)結(jié)構(gòu)索引變成了前面設(shè)置的123,相應(yīng)的數(shù)據(jù)集名字也變成了前面設(shè)置的“student”。將Series的其他參數(shù)加上。例8.3通過索引查詢數(shù)據(jù)。importpandasaspd#創(chuàng)建一個(gè)包含鍵值對的字典a#鍵為整數(shù),值為字符串a(chǎn)={1:"Zhangsan",2:"Lisi",3:"Wangwu"}#使用pd.Series將字典a轉(zhuǎn)換為Pandas的Series對象
#字典的鍵將作為Series的索引,字典的值將作為Series的元素
b=pd.Series(a)
#打印Series對象b中索引為2的元素
print(b[2])Series的數(shù)據(jù)檢索Pandas數(shù)據(jù)結(jié)構(gòu)這里設(shè)置了索引值,索引值為2對應(yīng)的數(shù)據(jù)為“Lisi”。在Series中,用戶可以通過索引查詢數(shù)據(jù)。Pandas數(shù)據(jù)結(jié)構(gòu)二維數(shù)組DataFramePandas是Python編程語言中用于數(shù)據(jù)分析和操作的流行庫。DataFrame是pandas提供的一個(gè)核心數(shù)據(jù)結(jié)構(gòu),用于存儲和操作表格型數(shù)據(jù)(即具有行和列的數(shù)據(jù))。DataFrame
可以看作是一個(gè)二維的、大小可變的、有潛在異構(gòu)類型的表格數(shù)據(jù)結(jié)構(gòu),類似于SQL表或Excel電子表格。例8.4(1)創(chuàng)建一個(gè)二維數(shù)組DataFrame。importpandasaspd#從字典創(chuàng)建DataFrame#字典的鍵將成為DataFrame的列名
#字典的值將成為對應(yīng)列的數(shù)據(jù)data=
{'Name':
['Alice',
'Bob',
'Charlie'],
#列’Name’的數(shù)據(jù)
'Age':
[25,
32,
18],
'City':
['NewYork',
'Paris',
'London']}
#列’City’的數(shù)據(jù)#使用pd.DataFrame將字典data轉(zhuǎn)換為Pandas的DataFrame對象df=pd.DataFrame(data)
print(df)二維數(shù)組DataFramePandas數(shù)據(jù)結(jié)構(gòu)#訪問單個(gè)列#使用列名訪問DataFrame中的單列,返回一個(gè)Series對象
names=df['Name']
print(names)
#訪問多列#使用列名列表訪問DataFrame中的多列,返回一個(gè)包含所選列的DataFramesubset=df[['Name',
'Age']]
print(subset)
#訪問特定行
#使用整數(shù)位置索引訪問DataFrame中的特定行,返回該行的Series對象
#.iloc用于基于整數(shù)位置(從0開始)進(jìn)行行和列的選擇row=df.iloc[0]
#訪問第一行(位置為0的行)
print(row)
#訪問特定位置的元素
#使用整數(shù)行索引和列名訪問DataFrame中的特定單元格的值#.at用于基于標(biāo)簽(索引和列名)進(jìn)行單個(gè)元素的快速訪問value=df.at[0,
'Age']
#訪問第一行(索引0)中'Age'列的值
print(value)例8.4(2)訪問數(shù)據(jù):可以通過列名或行索引來訪問
DataFrame
中的數(shù)據(jù)。二維數(shù)組DataFramePandas數(shù)據(jù)結(jié)構(gòu)#篩選數(shù)據(jù)
#根據(jù)條件篩選DataFrame中的行
#這里只選擇'Age'列大于20的行filtered_df=df[df['Age']
>
20]
#排序數(shù)據(jù)
#根據(jù)指定列對DataFrame進(jìn)行排序
#這里按'Age'列的值升序排序sorted_df=df.sort_values(by='Age')
#分組數(shù)據(jù)
#按指定列對DataFrame進(jìn)行分組,并計(jì)算每組的統(tǒng)計(jì)信息
#這里按'City'列分組,并計(jì)算每組中'Age'列的平均值grouped_df=df.groupby('City')['Age'].mean()
#合并數(shù)據(jù)(假設(shè)有另一個(gè)DataFramedf2)
#根據(jù)共同列將兩個(gè)DataFrame合并
#這里基于'Name'列進(jìn)行合并merged_df=pd.merge(df,df2,on='Name')例8.4(3)數(shù)據(jù)操作:pandas
提供了豐富的數(shù)據(jù)操作功能,如篩選、排序、分組、合并等。二維數(shù)組DataFramePandas數(shù)據(jù)結(jié)構(gòu)#檢查缺失值
#使用isnull()方法檢查DataFrame中的缺失值
#.values.any()檢查是否存在任何缺失值
#如果存在缺失值,則返回True;如果沒有缺失值,則返回Falsehas_nans=df.isnull().values.any()
#刪除包含缺失值的行
#使用dropna()方法刪除任何包含缺失值的行
#結(jié)果是一個(gè)沒有缺失值的DataFramedf_clean=df.dropna()
#填充缺失值
#使用fillna()方法填充缺失值
#method='ffill'表示使用前一個(gè)有效值填充缺失值(前向填充)df_filled=df.fillna(method='ffill')
#前向填充例8.4(4)缺失數(shù)據(jù)處理:Pandas
提供了處理缺失數(shù)據(jù)(NaN)的功能。二維數(shù)組DataFramePandas數(shù)據(jù)結(jié)構(gòu)#導(dǎo)出到CSV文件
df.to_csv('data.csv
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025陜西交控綠色發(fā)展集團(tuán)自聘人員社會招聘23人筆試參考題庫附帶答案詳解(3卷合一版)
- 2025聯(lián)通視頻科技有限公司校園招聘(2個(gè)崗位)筆試參考題庫附帶答案詳解(3卷)
- 2025浙江寧波市奉化區(qū)融媒體中心編外用工公開招聘3人筆試參考題庫附帶答案詳解(3卷合一版)
- 2025新疆能源(集團(tuán))石油天然氣有限責(zé)任公司招聘7人筆試參考題庫附帶答案詳解(3卷合一版)
- 2025年福建省能化集團(tuán)下屬古雷熱電有限責(zé)任公司春季社會招聘30人筆試參考題庫附帶答案詳解(3卷)
- 2025年度中鐵特貨物流股份有限公司招聘畢業(yè)生80人筆試參考題庫附帶答案詳解(3卷)
- 2025年中國煙草總公司吉林省公司招聘87人筆試參考題庫附帶答案詳解(3卷)
- 2025北京國家金融科技風(fēng)險(xiǎn)監(jiān)控中心有限公司招聘創(chuàng)新研究崗筆試參考題庫附帶答案詳解(3卷)
- 金湖縣2024江蘇淮安市金湖經(jīng)濟(jì)開發(fā)區(qū)面向全縣選聘專業(yè)招商公司工作人員10人筆試歷年參考題庫典型考點(diǎn)附帶答案詳解(3卷合一)
- 福州市2023福建福州市倉山區(qū)人力資源和社會保障局編外人員招聘筆試歷年參考題庫典型考點(diǎn)附帶答案詳解(3卷合一)
- 螺栓強(qiáng)度校核課件
- 混凝土及外加劑知識培訓(xùn)課件
- 1-視頻交換矩陣
- 收養(yǎng)政策知識培訓(xùn)內(nèi)容課件
- 2025-2026學(xué)年統(tǒng)編版一年級上冊道德與法治教學(xué)計(jì)劃
- 《機(jī)器學(xué)習(xí)》課件-第6章 強(qiáng)化學(xué)習(xí)
- 早產(chǎn)合并新生兒呼吸窘迫綜合征護(hù)理查房
- 警校偵查專業(yè)畢業(yè)論文
- 生態(tài)教育心理干預(yù)-洞察及研究
- 票務(wù)提成管理辦法
- 肺炎克雷伯菌肺炎護(hù)理查房
評論
0/150
提交評論