pandas庫簡介(1)--pandas的三種資料結構
/****************持續更新中**************************/
pandas有三種資料結構形式,分別是Series,DataFrame和索引物件。
1.Series
Series和一維陣列很像,只是它的每一個值都有一個索引,輸出顯示時索引在左,值在右。
如果語言無法清晰表達,不妨看段程式碼,畢竟talk is cheap,show me your code!!!
首先匯入pandas庫:
>>from pandas import Series
用陣列生成一個Series:
>>test1=Series([1,2,3,4,5])
>>print test1
輸出:
0 1
1 2
2 3
3 4
4 5
dtype: int64
上面的例子我們沒有指定索引。沒有索引的情況下索引值預設從1開始往後排。
接下來我們嘗試用index引數指定索引:
>>test2=Series([2,3,3,3],index=['c','o','d','e'])
c 2
o 3
d 3
e 3
dtype: int64
也可以用字典生成Series:
>>> dic={'h':1,'e':2,'l':3}
>>> test3=Series(dic)
>>> print test3
e 2
h 1
l 3
dtype: int64
OK!以上是Series的生成方法,下面講Series的使用技巧。
獲取Series的索引和值:
>>> print test1.index
RangeIndex(start=0, stop=5, step=1)
>>> print test2.values
[2 3 3 3]
獲取特定索引的值:
>>> test1[1]
2
>>> test2['c']
2
>>> test2[['c','o']]
c 2
o 3
dtype: int64
指定Series及其索引的名字:
>>> test3.name='test'
>>> test3.index.name='hello'
>>> print test3
hello
e 2
h 1
l 3
Name: test, dtype: int64
用新的index替換掉舊的index:
>>> test3.index=['g','k','b']
>>> print test3
g 2
k 1
b 3
Name: test, dtype: int64
2.DataFrame
DataFrame是一種表格型資料結構,類似於excel,每一個值都有一個行索引和一個列索引,不同列的資料型別可以不一樣,當然,解釋沒用,上程式碼:
>>import numpy as np
>>from pandas import Series, DataFrame
先用字典生成一波DataFrame
>>dic={'name':['Bill','Alice','John'],'age':[23,22,18],'sex':[1,0,1]}
>>test1=DataFrame(dic)
age name sex
0 23 Bill 1
1 22 Alice 0
2 18 John 1
可以看到用字典生成的DataFrame只指定了列索引,沒指定行索引,那麼行索引就預設從0開始往後排。
下面指定索引:
>>test2=DataFrame(dic,columns=['age','name','sex','class'],index=[1,2,3])
>>test2=DataFrame(dic,columns=['age','name','sex','class'],index=[1,2,3])
>>print test2
age name sex class
1 23 Bill 1 NaN
2 22 Alice 0 NaN
3 18 John 1 NaN
可以看到,若指定列不存在,就會用NaN補充。
>>test2['class']=301 #把'class'這列的值都改為301
>>print test2
age name sex class
1 23 Bill 1 301
2 22 Alice 0 301
3 18 John 1 301
還可以轉置:
>>test3=test2.T
>>print test3
1 2 3
age 23 22 18
name Bill Alice John
sex 1 0 1
class 301 301 301
3.index
獲取索引
test1=Series([1,2,3,4],index=['a','b','c','d'])
index=test1.index #獲取index
print index
Index([u'a', u'b', u'c', u'd'], dtype='object')
使用索引物件
index=Index(np.arange(5))
test2=Series([11,22,33,44,55],index=index)
print test2
0 11
1 22
2 33
3 44
4 55
dtype: int64
--------------------- 作者:張冰洋的天空 來源:CSDN 原文:https://blog.csdn.net/zby1001/article/details/54234121?utm_source=copy 版權宣告:本文為博主原創文章,轉載請附上博文連結!