更新時間:2023-09-13 來源:黑馬程序員 瀏覽量:
pandas中提供了兩個比較重要的數(shù)據(jù)結構,即Series和DataFrame,分別用于處理一維數(shù)據(jù)和二維數(shù)據(jù)。本節(jié)將針對pandas的數(shù)據(jù)結構進行詳細的介紹。
Series是由 pandas 庫提供的一個類,Series類對象的結構類似于一維數(shù)組,主要由數(shù)據(jù)和索引兩部分組成,其中數(shù)據(jù)可以是任意類型,如整數(shù)、字符串、浮點數(shù)等。Series類對象的結構示意如圖所示。
Series類對象的索引位于左側,數(shù)據(jù)位于右側。需要說明的是,Series類對象的索引樣式比較豐富,默認是自動生成的整數(shù)索引(從0開始遞增),也可以是自定義的標簽索引(由自定義的標簽構成的索引)、時間索引(由日期時間構成的索引)等。
通過Series類的構造方法可以創(chuàng)建一維數(shù)據(jù)。Series類構造方法的語法格式如下。
pandas.Series (data=None,index=None,dtype=None,nane=None,copy=False, fastpath=False)
以上構造方法中常用參數(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:表示是否復制數(shù)據(jù),默認為Fakse。
接下來,通過在Series0方法中傳人列表的方式創(chuàng)建Series類對象,代碼如下。
import pandas an pd # 導入pandan庫 # 根據(jù)列表創(chuàng)建Series類對象 ser_obj = pd.Series(['Python','Java','PHP']) print(ser_cbj) 0 Python 1 Java 2 PHP dtype: object
從輸出結果可以看出,Series類對象的索引為0~2,即自動生成的整數(shù)索引;數(shù)據(jù)由上至下依次為列表的各個元素,其類型為object,該類型是根據(jù)列表中元素的類型推斷出來的。
在使用Series0方法創(chuàng)建對象時,可以傳人index參數(shù)指定自定義的索引,代碼如下。
In []: # 導入pandaa庫 import pandas as pd # 創(chuàng)建Series類對象,同時為該對象指定索引 ser_obj = pd.Series(['Python', 'Java', 'PHP'], index = ['one', 'two', 'three']} print(ser_obj) one Python two Java three PHP dtype: cbject
從輸出結果可以看出,Series類對象的索引不再是整數(shù)索引,而是由 index參數(shù)指定的標簽索引。
使用Series()方法創(chuàng)建對象時可以傳入字典,此時字典的鍵將作為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