pandas有兩個(gè)很重要的的數(shù)據(jù)結(jié)構(gòu):Series和DataFrame,今天先學(xué)習(xí)Series的用法。
Series是一種類似于一維數(shù)組的對(duì)象,它由一組數(shù)據(jù)(各種NumPy數(shù)據(jù)類型)以及一組與之相關(guān)的數(shù)據(jù)標(biāo)簽(即索引)組成。

1.png
從結(jié)果可以看出Series的字符串表現(xiàn)形式為:索引在左邊,值在右邊。在上面的例子中我并沒(méi)有為數(shù)據(jù)指定具體索引,它會(huì)自動(dòng)創(chuàng)建一個(gè)0到N-1(N為數(shù)據(jù)的長(zhǎng)度)的整數(shù)型索引。

2.png

3.png

4.png

5.png

6.png

7.png

8.png
在上面的例子中,province中與provinces索引相匹配的3個(gè)值會(huì)被找出來(lái)并放到相對(duì)應(yīng)的位置上,但是我給的"Hainan"在province中找不到,所以其結(jié)果為NaN(即“非數(shù)字”(not a number),在pandas中,它用于表示缺失或NA值)。

9.png

10.png
Series最重要的一個(gè)功能是:它在算術(shù)運(yùn)算中會(huì)自動(dòng)對(duì)齊不同索引的數(shù)據(jù)。

11.png

12.png

13.png
附源碼:
# coding: utf-8
# In[1]:
import pandas as pd
from pandas import Series,DataFrame
obj = Series([5,9,2,-8])
print obj
# In[2]:
print obj.values
# In[3]:
print obj.index
# In[4]:
obj2 = Series([6,-1,7,3],index=['a','b','c','d'])
print obj2
# In[5]:
# 通過(guò)索引查找具體值
print obj2['b']
# In[6]:
# 替換值
obj2['a'] = -5
print obj2
# In[7]:
# 通過(guò)索引查找一組值
print obj2[['a','b','c']]
# In[8]:
print obj2
# In[9]:
# 查找大于0的值
print obj2[obj2 > 0]
# In[10]:
# 數(shù)組標(biāo)量乘法
print obj2 * 2
# In[11]:
# 返回 e(自然對(duì)數(shù)的底)的冪次方
import numpy as np
e = np.exp(obj2)
print e
# In[12]:
'd' in obj2
# In[13]:
'e' in obj2
# In[14]:
# Series與字典的用法
province = {'Guangdong':10999,'Shandong':9946.64,'Sichuan':8262,'Henan':9532.42}
obj3 = Series(province)
print obj3
# In[15]:
provinces = ['Hainan','Guangdong','Shandong','Sichuan']
obj4 = Series(province,index=provinces)
print obj4
# In[16]:
# 檢測(cè)缺失數(shù)據(jù)
pd.isnull(obj4)
# In[17]:
# 檢測(cè)不缺失的數(shù)據(jù)
pd.notnull(obj4)
# In[18]:
# Series檢測(cè)缺失數(shù)據(jù)
obj4.isnull()
# In[19]:
print obj3
# In[20]:
print obj4
# In[21]:
# Series自動(dòng)對(duì)齊不同索引數(shù)據(jù)
print (obj3 + obj4)
# In[22]:
# Series對(duì)象本身及其索引的name屬性
obj4.name = 'population'
obj4.index.name = 'province'
print obj4
# In[23]:
print obj
# In[24]:
# 通過(guò)賦值修改Series的索引
obj.index = ['Bob','Steve','Jeff','Ryan']
print obj