pandas基于Numpy構(gòu)建
pandas 的數(shù)據(jù)結(jié)構(gòu)介紹
Series
#Series類似一維數(shù)組的對象, 傳入數(shù)組可以生成Series對象
In [5]: obj = Series([4,5,6,0])
In [7]: obj
Out[7]:
0 4
1 5
2 6
3 0
dtype: int64
#可以看到左邊有默認的index于數(shù)據(jù)一一對應(yīng),可以通過index取數(shù)據(jù)
In [8]: obj[0]
Out[8]: 4
#可以在初始化的時候,傳入index數(shù)據(jù),指定索引
In [10]: obj2 = Series([4,45,5,6],index = ['b','a','c','d'])
#既可以通過指定的索引取數(shù)據(jù),也可以通過index取得數(shù)據(jù)
In [12]: obj2['a']
Out[12]: 45
In [13]: obj2[0]
Out[13]: 4
#也可以通過索引或者index 取得Series中的一組值
In [18]: obj2[[1,2]]
Out[18]:
a 45
c 5
dtype: int64
In [19]: obj2[['a','b']]
Out[19]:
a 45
b 4
dtype: int64
#Numpy數(shù)組運算,(如布爾型數(shù)組進行過濾,標量乘法,應(yīng)用數(shù)學(xué)函數(shù)等)都會保留索引與值之間的聯(lián)系
In [20]: obj2[obj2 > 10]
Out[20]:
a 45
dtype: int64
In [21]: obj2*2
Out[21]:
b 8
a 90
c 10
d 12
dtype: int64
#Series也可看做是定長的有序字典,很多字典通用的函數(shù),在Series中也可以用
In [23]: 'a' in obj2
Out[23]: True
#也可以通過字典創(chuàng)建Series
In [26]: sdata = {'aaa':1232,'bbb':324,'ccc':433}
In [27]: obj3 = Series(sdata)
In [28]: obj3
Out[28]:
aaa 1232
bbb 324
ccc 433
dtype: int64
#如果同時傳入一個索引的數(shù)組,會根據(jù)索引取出對應(yīng)的元素, 缺失的用NAN代替.
In [29]: index_str = ['eee','ccc','aaa']
In [30]: obj4 = Series(sdata,index_str)
In [31]: obj4
Out[31]:
eee NaN
ccc 433.0
aaa 1232.0
dtype: float64
#Series的索引也可以通過賦值的方式進行修改
In [39]: obj2.index = ['bbbb', 'baaaaaa', 'cccccc', 'dddddddddddddddddddd']
In [40]: obj2
Out[40]:
bbbb 4
baaaaaa 45
cccccc 5
dddddddddddddddddddd 6
dtype: int64