更新時(shí)間:2023-09-13 來源:黑馬程序員 瀏覽量:
pandas中提供了兩個比較重要的數(shù)據(jù)結(jié)構(gòu),即Series和DataFrame,分別用于處理一維數(shù)據(jù)和二維數(shù)據(jù)。本節(jié)將針對pandas的數(shù)據(jù)結(jié)構(gòu)進(jìn)行詳細(xì)的介紹。
Series是由 pandas 庫提供的一個類,Series類對象的結(jié)構(gòu)類似于一維數(shù)組,主要由數(shù)據(jù)和索引兩部分組成,其中數(shù)據(jù)可以是任意類型,如整數(shù)、字符串、浮點(diǎn)數(shù)等。Series類對象的結(jié)構(gòu)示意如圖所示。
Series類對象的索引位于左側(cè),數(shù)據(jù)位于右側(cè)。需要說明的是,Series類對象的索引樣式比較豐富,默認(rèn)是自動生成的整數(shù)索引(從0開始遞增),也可以是自定義的標(biāo)簽索引(由自定義的標(biāo)簽構(gòu)成的索引)、時(shí)間索引(由日期時(shí)間構(gòu)成的索引)等。
通過Series類的構(gòu)造方法可以創(chuàng)建一維數(shù)據(jù)。Series類構(gòu)造方法的語法格式如下。
pandas.Series (data=None,index=None,dtype=None,nane=None,copy=False, fastpath=False)
以上構(gòu)造方法中常用參數(shù)的含義如下。
· data:表示傳入的數(shù)據(jù),可以是ndarry、列表、字典等。
· index:表示傳入的索引,必須是唯一值,且與數(shù)據(jù)的長度相同。若沒有傳入索引,則創(chuàng)建的Series類對象會自動生成0~N的整數(shù)索引。
· dtype:表示數(shù)據(jù)的類型。若未指定數(shù)據(jù)類型,pandas會根據(jù)傳入的數(shù)據(jù)自動推斷數(shù)據(jù)類型。
· name:表示Series類對象的名稱。
· copy:表示是否復(fù)制數(shù)據(jù),默認(rèn)為Fakse。
接下來,通過在Series0方法中傳人列表的方式創(chuàng)建Series類對象,代碼如下。
import pandas an pd # 導(dǎo)入pandan庫 # 根據(jù)列表創(chuàng)建Series類對象 ser_obj = pd.Series(['Python','Java','PHP']) print(ser_cbj) 0 Python 1 Java 2 PHP dtype: object
從輸出結(jié)果可以看出,Series類對象的索引為0~2,即自動生成的整數(shù)索引;數(shù)據(jù)由上至下依次為列表的各個元素,其類型為object,該類型是根據(jù)列表中元素的類型推斷出來的。
在使用Series0方法創(chuàng)建對象時(shí),可以傳人index參數(shù)指定自定義的索引,代碼如下。
In []: # 導(dǎo)入pandaa庫 import pandas as pd # 創(chuàng)建Series類對象,同時(shí)為該對象指定索引 ser_obj = pd.Series(['Python', 'Java', 'PHP'], index = ['one', 'two', 'three']} print(ser_obj) one Python two Java three PHP dtype: cbject
從輸出結(jié)果可以看出,Series類對象的索引不再是整數(shù)索引,而是由 index參數(shù)指定的標(biāo)簽索引。
使用Series()方法創(chuàng)建對象時(shí)可以傳入字典,此時(shí)字典的鍵將作為Series類對象的索引。字典的值將作為Series類對象的數(shù)據(jù),代碼如下。
In []: data =('one':'Python', 'two': 'Java','three': 'PHP') ser_cbj2 = pd.Series(data) # 根據(jù)字典創(chuàng)建Series類對象 print(ser cbj2) one Python two Java three PHP dtype: object
圖解matplotlib下載安裝[贈送26集matplotlib數(shù)據(jù)可視化教程]
2023-09-13如何實(shí)現(xiàn)Flume數(shù)據(jù)傳輸?shù)谋O(jiān)控?
2023-09-12學(xué)歷低可以學(xué)Python嗎?Python對學(xué)歷的要求
2023-09-11Python里面match()和search()的區(qū)別?
2023-09-06Python里面如何實(shí)現(xiàn)tuple和list的轉(zhuǎn)換?
2023-09-05全面擁抱云平臺,Python+大數(shù)據(jù)開發(fā)V4.0課程升級
2023-08-23