pandas資料結構介紹

2021-08-14 12:54:55 字數 2953 閱讀 5129

pandas是基於numpy構建的,它以numpy為中心的應用變得更加簡單。

pandas的資料結構介紹

series最重要的乙個功能是:它在算術運算中會自動對齊不同索引的資料。

series物件及其索引都有乙個name屬性,該屬性跟pandas其他的關鍵功能關係非常密切

series的索引可以通過賦值的方式就地修改:

dataframe是乙個**型的資料結構,它含有一組有序的列,每列可以是不同的值型別(數值、字串、布林值等)。dataframe既有行索引也有列索引,它可以被看做有series組成的字典(共用同乙個索引)。跟其他類似的資料結構相比(如r的data,frame),dataframe中面向行和列的操作基本上是平衡的。其實,dataframe中面向行和列的操作基本上是平衡的。其實,dataframe中的資料是以乙個或多個二維塊存放的。

構建dataframe的方法有很多,最常用的一種是直接傳入乙個由等長列表或numpy陣列組成的字典:

data=

frame=dataframe(data)

dataframe會自動加上索引(跟series一樣),且全部列會被有序排列

跟series一樣,如果傳入的列在資料中找不到,就會產生na值:

通過類似字典標記的方式或屬性的方式,可以將dataframe的列獲取為乙個series:

注意:返回的series擁有原dataframe相同的索引,且其name屬性也已經相應地設定好了。行也可以通過位置或名稱的方式進行獲取,比如索引欄位ix:

frame2.ix['three']

列可以通過賦值的方式進行修改。例如,我們可以給那個空的'debt'列附上乙個標量值或一組值:

將列表或陣列賦值給某個列時,其長度必須跟dataframe的長度相匹配。如果賦值的是乙個series,就會精確匹配dataframe的索引,所有的空位都將填上缺失值:

為不存在的列賦值會建立出乙個新列。關鍵字del用於刪除列:

另一種常見的資料格式是巢狀字典

pop=,'ohio':}

如果將它傳給dataframe,它就會被解釋為:外層字典的鍵作為列,內層鍵則作為行索引:

frame3=dataframe(pop)

由series組成的字典差不多也是一樣的用法

索引物件

pandas的索引物件負責管理軸標籤和其他元資料(比如軸名稱等)。構建series或dataframe時,所用到的任何陣列或其他序列的標籤都會被轉換成乙個index:

obj=series(range(3),index=['a','b','c'])

index=obj.index

index物件是不可修改的(immutable),因此使用者不能對其進行修改。不可修改性非常重要,因為這樣才能使index物件在多個資料結構之間安全共享:

index=pd.index(np.arrange(3))

obj2=series([1.5,-2.5,0],index=index)

obj2.index is index

true

下表列出了pandas庫中內建的index類。

pandas中主要的index物件類說明

index

最泛化的index物件,將軸標籤表示為乙個由python物件組成的numpy陣列

int64index

針對整數的特殊index

multiindex

"層次化"索引物件,表示單個軸上的多層索引。可以看做由元組組成的陣列

datatimeindex

儲存納秒級時間戳

periodindex

針對period資料(時間間隔)的特殊index

pandas資料結構

coding utf 8 pandas是numpy的公升級版,功能比numpy更高階 import pandas as pd import numpy as np pandas庫主要定義了兩種資料型別 series dataframe 通過乙個list列表構建乙個series資料 ser obj p...

Pandas資料結構

pandas處理以下三個資料結構 這些資料結構構建在numpy陣列之上,這意味著它們很快。考慮這些資料結構的最好方法是,較高維資料結構是其較低維資料結構的容器。例如,dataframe是series的容器,panel是dataframe的容器。資料結構 維數描述系列1 1d標記均勻陣列,大小不變。資...

讀書筆記一 pandas資料結構介紹

pandas資料結構介紹 主要兩種資料結構 series和dataframe.series series是一種類似於一維陣列的物件,由一組資料 各種numpy資料型別 資料標籤 即索引 組成。直接傳入一組資料 from pandas import series,dataframe obj serie...