版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第10章Pandas
《Python數(shù)據(jù)分析與應(yīng)用》pandaspandas是基于NumPy的數(shù)據(jù)分析工具,官方網(wǎng)址是。pandas提供了快速,靈活和富有表現(xiàn)力的數(shù)據(jù)結(jié)構(gòu),目的是使“關(guān)系”或“標(biāo)記”數(shù)據(jù)的工作既簡單又直觀。Pandas用于數(shù)據(jù)清洗,對噪音等數(shù)據(jù)進(jìn)行處理,從而便于機(jī)器學(xué)習(xí)和數(shù)據(jù)分析。pandaspandas常用6個類Series:基本數(shù)據(jù)結(jié)構(gòu),一維標(biāo)簽數(shù)組,能夠保存任何數(shù)據(jù)類型DataFrame:基本數(shù)據(jù)結(jié)構(gòu),一般為二維數(shù)組,是一組有序的列Index:索引對象,負(fù)責(zé)管理軸標(biāo)簽和其他元數(shù)據(jù)(比如軸名稱)groupby:分組對象,通過傳入需要分組的參數(shù)實現(xiàn)對數(shù)據(jù)分組Timestamp:時間戳對象,表示時間軸上的一個時刻Timedelta:時間差對象,用來計算兩個時間點(diǎn)的差值Pandas2個重要類創(chuàng)建Series
創(chuàng)建Series對象的函數(shù)是Series,它的主要參數(shù)是data和index,其基本語法格式如下。pandas.Series(data=None,
index=None,
name=None)
參數(shù)說明如下:data:接收array或dict。表示接收的數(shù)據(jù)。默認(rèn)為None。index:接收array或list。表示索引,必須與數(shù)據(jù)長度相同name:接收string或list。表示Series對象的名稱。默認(rèn)為None。通過ndarray創(chuàng)建Seriesimportpandasaspdimportnumpyasnpprint('通過ndarray創(chuàng)建的Series為:\n',pd.Series(np.arange(5),index=['a','b','c','d','e'],name='ndarray'))通過dict創(chuàng)建Seriesdict的鍵作為Series的索引,dict的值作為Series的值,無須傳入index參數(shù)。通過dict創(chuàng)建Series對象,代碼如下所示:importpandasaspddict={'a':0,'b':1,'c':5,'d':3,'e':4}print('通過dict創(chuàng)建的Series為:\n',pd.Series(dict))通過list創(chuàng)建Seriesimportpandasaspdlist1=[0,1,5,3,4]print('通過list創(chuàng)建的Series為:\n',pd.Series(list1,index=['a','b','c','d','e'],name='list'))Series屬性Series擁有8個常用屬性,如下所示。values:以ndarray的格式返回Series對象的所有元素index:返回Series對象的索引dtype:返回Series對象的數(shù)據(jù)類型shape:返回Series對象的形狀nbytes:返回Series對象的字節(jié)數(shù)ndim:返回Series對象的維度size:返回Series對象的個數(shù)T:返回Series對象的轉(zhuǎn)置訪問Series的屬性importpandasaspdseries1=pd.Series([1,5,3,4])print("series1:\n{}\n".format(series1))print("series1.values:{}\n".format(series1.values))#數(shù)據(jù)print("series1.index:{}\n".format(series1.index))#索引print("series1.shape:{}\n".format(series1.shape))#形狀print("series1.ndim:{}\n".format(series1.ndim))#維度訪問Series數(shù)據(jù)通過索引位置訪問Series的數(shù)據(jù)與ndarray相同,importpandasaspdseries5=pd.Series([1,5,3,4,5,6,7],index=["C","D","E","F","G","A","B"])#通過索引位置訪問Series數(shù)據(jù)子集print("series5位于第1位置的數(shù)據(jù)為:",series5[0])#通過索引名稱(標(biāo)簽)也可以訪問Series數(shù)據(jù)print("Eis{}\n".format(series5["E"]))更新Seriesimportpandasaspdseries1=pd.Series(list1,index=['a','b','c','d','e'],name='list')print("series1:\n{}\n".format(series1))#更新元素series1['a']=3print('更新后的Series1為:\n',series1)追加Series和插入單個值importpandasaspdseries1=pd.Series(list1,index=['a','b','c','d','e'],name='list')print("series1:\n{}\n".format(series1))series1=pd.Series([4,5],index=['f','g'])#追加Seriesprint('在series插入series1后為:\n',series.append(series1))刪除Series元素importpandasaspdseries=pd.Series(list1,index=['a','b','c','d','e'],name='list')print("series:\n{}\n".format(series))#刪除數(shù)據(jù)series.drop('e',inplace=True)print('刪除索引e對應(yīng)數(shù)據(jù)后的series為:\n',series)。DataFrameDataFrame是pandas基本數(shù)據(jù)結(jié)構(gòu),類似數(shù)據(jù)庫中的表。DataFrame既有行索引,也有列索引,可以看作是Series組成的dict,每個Series是DataFrame的一列
創(chuàng)建DataFrameDataFrame函數(shù)用于創(chuàng)建DataFrame對象,其基本語法格式如下pandas.DataFrame(data=None,
index=None,
columns=None,
dtype=None,
copy=False)參數(shù)說明如下所示:data:接收ndarray、dict、list或DataFrame。表示輸入數(shù)據(jù)。默認(rèn)為None。index:接收Index,ndarray。表示索引。默認(rèn)為None。columns:接收Index,ndarray。表示列標(biāo)簽(列名)。默認(rèn)為None。通過dict創(chuàng)建DataFrameimportpandasaspddict1={'col1':[0,1,5,3,4],'col5':[5,6,7,8,9]}print('通過dict創(chuàng)建的DataFrame為:\n',pd.DataFrame(dict1,index=['a','b','c','d','e']))通過list創(chuàng)建DataFrameimportpandasaspdlist5=[[0,5],[1,6],[5,7],[3,8],[4,9]]print('通過list創(chuàng)建的DataFrame為:\n',pd.DataFrame(list5,index=['a','b','c','d','e'],columns=['col1','col5']))通過Series創(chuàng)建DataFrameimportpandasaspdnoteSeries
=
pd.Series(["C",
"D",
"E",
"F",
"G",
"A",
"B"],
index=[1,
5,
3,
4,
5,
6,
7])weekdaySeries
=
pd.Series(["Mon",
"Tue",
"Wed",
"Thu","Fri",
"Sat",
"Sun"],
index=[1,
5,
3,
4,
5,
6,
7])df4
=
pd.DataFrame([noteSeries,
weekdaySeries])print("df4:\n{}\n".format(df4))DataFrame屬性values:以ndarray的格式返回DataFrame對象的所有元素index:返回DataFrame對象的Indexcolumns:返回DataFrame對象的列標(biāo)簽dtypes:返回DataFrame對象的數(shù)據(jù)類型axes:返回DataFrame對象的軸標(biāo)簽ndim:返回DataFrame對象的軸尺寸數(shù)size:返回DataFrame對象的個數(shù)shape:返回DataFrame對象的形狀更新DataFrameimportpandasaspddf=pd.DataFrame({'col1':[0,1,5,3,4],'col5':[5,6,7,8,9]},index=['a','b','c','d','e'])print('DataFrame為:\n',df)#更新列df['col1']=[10,11,15,13,14]print('更新列后的DataFrame為:\n',df)插入和刪除DataFrameimportpandasaspddf3=pd.DataFrame({"note":["C","D","E","F","G","A","B"],"weekday":["Mon","Tue","Wed","Thu","Fri","Sat","Sun"]})print("df3:\n{}\n".format(df3))df3["No."]=pd.Series([1,5,3,4,5,6,7])#采用賦值的方法插入列print("df3:\n{}\n".format(df3))deldf3["weekday"]#刪除列的方法有多種,如del、pop、dropprint("df3:\n{}\n".format(df3))Index
(1)
隱式創(chuàng)建
創(chuàng)建Series或DataFrame等對象時,索引會轉(zhuǎn)換為Index對象
(2)顯式創(chuàng)建
Index對象可以通過pandas.Index()函數(shù)創(chuàng)建
。
plotMatplotlib繪制一張圖表需要各個基礎(chǔ)組件對象,工作量較大。而pandas中使用行標(biāo)簽和列標(biāo)簽以及分組信息,較為簡便的完成圖表的制作。散點(diǎn)圖
importnumpyasnpimportpandasaspdwdf=pd.DataFrame(np.arange(20),columns=['W'])wdf['Y']=wdf['W']*1.5+2wdf.iloc[3,1]=128wdf.iloc[18,1]=150wdf.plot(kind='scatter',x='W',y='Y')
條形圖importpandasaspdimportnumpyasnpimportmatplotlib.pyplotaspltdf2=pd.DataFrame(np.random.rand(10,4),columns=['a','b','c','d'])df2.plot.bar()plt.show()
直方圖與密度圖importpandasaspdimportnumpyasnp
n1=np.random.normal(loc=10,scale=5,size=1000)n2=np.random.normal(loc=50,scale=7,size=1000)n=np.hstack((n1,n2))s=pd.DataFrame(data=n)s.plot(kind='hist',bins=100,density=True)s.plot(kind='kde')
箱線圖importnumpyasnpimportpandasaspd
wdf=pd.DataFrame(np.arange(20),columns=['W'])wdf['Y']=wdf['W']*1.5+2wdf.iloc[3,1]=128wdf.iloc[18,1]=150importmatplotlib.pyplotaspltplt.boxplot(wdf)plt.show()面積圖importpandasaspdimportnumpyasnpimportmatplotlib.pyplotaspltdf=pd.Dat
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2030年中國嬰兒紙尿褲市場供需渠道分析及發(fā)展競爭力研究報告
- 2024-2030年中國可再分散乳膠粉行業(yè)發(fā)展?jié)摿巴顿Y戰(zhàn)略規(guī)劃研究報告
- 2024-2030年中國衛(wèi)生消毒市場競爭格局展望及投資策略分析報告
- 2024年幼兒園管理權(quán)轉(zhuǎn)移協(xié)議3篇
- 梅河口康美職業(yè)技術(shù)學(xué)院《精細(xì)化學(xué)品化學(xué)及工藝》2023-2024學(xué)年第一學(xué)期期末試卷
- 眉山藥科職業(yè)學(xué)院《電工電子基礎(chǔ)A》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年度生產(chǎn)車間承包與綠色生產(chǎn)技術(shù)研發(fā)合同3篇
- 滿洲里俄語職業(yè)學(xué)院《涉老企業(yè)品牌管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 茅臺學(xué)院《品牌敘事和聲譽(yù)管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 漯河食品職業(yè)學(xué)院《設(shè)計室內(nèi)》2023-2024學(xué)年第一學(xué)期期末試卷
- 線束生產(chǎn)控制計劃CP實例
- 基于風(fēng)險的軟件測試策略
- 大鎖孫天宇小品《時間都去哪了》臺詞劇本完整版-一年一度喜劇大賽
- 雙重血漿置換
- 2023北京海淀區(qū)高二上學(xué)期期末英語試題及答案
- 從分?jǐn)?shù)到分式教學(xué)設(shè)計-
- 酒店長期租房合同模板(16篇)
- 場域與對話-公共空間里的雕塑 課件-2023-2024學(xué)年高中美術(shù)人美版(2019)美術(shù)鑒賞
- 關(guān)于違規(guī)收受禮品禮金警示教育心得體會范文
- 國家開放大學(xué)《國際商法》形考任務(wù)1-5參考答案
- 顱腦損傷課件
評論
0/150
提交評論