Pandas Series基本操作
Series結(jié)構(gòu)如下:
pandas.Series( data, index, dtype, copy)
構(gòu)造函數(shù)的參數(shù)如下-
data:數(shù)據(jù)采用各種形式,例如ndarray,list,常量 index:索引值必須是唯一且可哈希的,且長(zhǎng)度與數(shù)據(jù)相同。如果未傳遞索引,則默認(rèn)為np.arrange(n)。 dtype:dtype用于數(shù)據(jù)類型。如果為None,則將推斷數(shù)據(jù)類型 copy:復(fù)制數(shù)據(jù)。默認(rèn)為假
可以使用各種輸入來創(chuàng)建Series,例如
Array Dict 標(biāo)量值或常數(shù)
>>> # 導(dǎo)入pandas依賴包并起別名 >>> import pandas as pd >>> s = pd.Series() >>> print(s) Series([], dtype: float64)
如果數(shù)據(jù)是ndarray,則傳遞的索引必須具有相同的長(zhǎng)度。如果沒有傳遞索引,則默認(rèn)情況下索引將是range(n),其中n是數(shù)組長(zhǎng)度,即[0,1,2,3…。范圍(len(array))-1]。
# Filename : pandas.py # author by : www.jixiangtaizi.com.cn # 導(dǎo)入pandas依賴包并起別名 import pandas as pd import numpy as np data = np.array(['a','b','c','d']) s = pd.Series(data) print(s)
運(yùn)行結(jié)果:
0 a 1 b 2 c 3 d dtype: object
我們沒有傳遞任何索引,因此默認(rèn)情況下,它分配的索引范圍為0到len(data)-1,即0到3。
# Filename : pandas.py # author by : www.jixiangtaizi.com.cn # 導(dǎo)入pandas依賴包并起別名 import pandas as pd import numpy as np data = np.array(['a','b','c','d']) s = pd.Series(data,index=[100,101,102,103]) print(s)
運(yùn)行結(jié)果:
100 a 101 b 102 c 103 d dtype: object
我們?cè)谶@里傳遞了索引值?,F(xiàn)在,我們可以在輸出中看到自定義的索引值。
字典可以作為輸入被傳遞,如果未指定索引,則該字典鍵都采取了在排序順序來構(gòu)建的索引。如果指數(shù)通過,在對(duì)應(yīng)于索引標(biāo)簽數(shù)據(jù)的值將被拉出。
# Filename : pandas.py # author by : www.jixiangtaizi.com.cn # 導(dǎo)入pandas依賴包并起別名 import pandas as pd import numpy as np data = {'a' : 0., 'b' : 1., 'c' : 2.} s = pd.Series(data) print(s)
運(yùn)行結(jié)果:
a 0.0 b 1.0 c 2.0 dtype: float64
字典鍵用于構(gòu)造索引。
# Filename : pandas.py # author by : www.jixiangtaizi.com.cn # 導(dǎo)入pandas依賴包并起別名 import pandas as pd import numpy as np data = {
運(yùn)行結(jié)果:
b 1.0 c 2.0 d NaN a 0.0 dtype: float64
索引順序保持不變,丟失的元素用NaN(非數(shù)字)填充。
如果數(shù)據(jù)是標(biāo)量值,則必須提供索引。該值將重復(fù)以匹配索引的長(zhǎng)度
# Filename : pandas.py # author by : www.jixiangtaizi.com.cn # 導(dǎo)入pandas依賴包并起別名 import pandas as pd import numpy as np s = pd.Series(5, index=[0, 1, 2, 3]) print(s)
運(yùn)行結(jié)果:
0 5 1 5 2 5 3 5 dtype: int64
可以像訪問ndarray一樣訪問Series中的數(shù)據(jù)。
檢索第一個(gè)元素。眾所周知,數(shù)組的計(jì)數(shù)從零開始,這意味著第一個(gè)元素存儲(chǔ)在第零個(gè)位置,依此類推。
# Filename : pandas.py # author by : www.jixiangtaizi.com.cn # 導(dǎo)入pandas依賴包并起別名 import pandas as pd s = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e']) # 檢索第一個(gè)數(shù)據(jù) print s[0]
運(yùn)行結(jié)果:
1
檢索Series中的前三個(gè)元素。如果在其前面插入,則將從該索引開始的所有項(xiàng)目都將被提取。如果使用兩個(gè)參數(shù)(它們之間帶有:),則兩個(gè)索引之間的項(xiàng)目(不包括停止索引)
# Filename : pandas.py # author by : www.jixiangtaizi.com.cn # 導(dǎo)入pandas依賴包并起別名 import pandas as pd s = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e']) # 檢索前3個(gè)元素 print s[:3]
運(yùn)行結(jié)果:
a 1 b 2 c 3 dtype: int64
檢索最后三個(gè)元素。
# Filename : pandas.py # author by : www.jixiangtaizi.com.cn # 導(dǎo)入pandas依賴包并起別名 s = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e']) # 檢索最后三個(gè)元素 print s[-3:]
運(yùn)行結(jié)果:
c 3 d 4 e 5 dtype: int64
Series就像固定大小的字典一樣,可以通過索引標(biāo)簽獲取和設(shè)置值。
使用索引標(biāo)簽值檢索單個(gè)元素。
# Filename : pandas.py # author by : www.jixiangtaizi.com.cn # 導(dǎo)入pandas依賴包并起別名 import pandas as pd s = pd.Series([1,2,3,4,5],index = [
運(yùn)行結(jié)果:
1
使用索引標(biāo)簽值列表檢索多個(gè)元素。
# Filename : pandas.py # author by : www.jixiangtaizi.com.cn # 導(dǎo)入pandas依賴包并起別名 import pandas as pd s = pd.Series([1,2,3,4,5],index = [
運(yùn)行結(jié)果:
a 1 c 3 d 4 dtype: int64
如果不包含標(biāo)簽,則會(huì)引發(fā)異常。
# Filename : pandas.py # author by : www.jixiangtaizi.com.cn # 導(dǎo)入pandas依賴包并起別名 import pandas as pd s = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e']) # 檢索多個(gè)元素 print(s['f'])
運(yùn)行結(jié)果:
… KeyError: 'f'