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...