1. 程式人生 > >pandas庫簡介(1)--pandas的三種資料結構

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 版權宣告:本文為博主原創文章,轉載請附上博文連結!