關(guān)于數(shù)據(jù)分析Pandas的Series用法總結(jié)
Series
Series是線性的數(shù)據(jù)結(jié)構(gòu),帶有標(biāo)簽的一維數(shù)組,軸標(biāo)簽統(tǒng)稱為索引,數(shù)據(jù)和標(biāo)簽之間存在聯(lián)系
一、導(dǎo)入Series
from pandas import Series
如果沒有安裝pandas的話,使用pip install pandas 進(jìn)行導(dǎo)入
二、創(chuàng)建Series
1、使用列表或者numpy進(jìn)行創(chuàng)建,默認(rèn)索引為0到N-1的整數(shù)型索引
a = Series([list], index=[list])
備注:
index: 設(shè)置Series的index,index列表的元素個(gè)數(shù)跟數(shù)據(jù)list的元素個(gè)數(shù)要對(duì)應(yīng)起來
示例:
沒有index的話,默認(rèn)index為0到N-1的整數(shù)型索引
obj = Series([1,2,3,4]) obj
自定義 index:
obj2 = Series([1,2,3,4],index=[‘a(chǎn)',‘b',‘c',‘d']) obj2
numpy創(chuàng)建跟list創(chuàng)建是相同的道理
2、使用字典創(chuàng)建(推薦使用)
創(chuàng)建方法為:
a = Series({Dict})
示例:
obj = Series({‘a(chǎn)':1,‘b':2, ‘c':3, ‘d':4}) obj
總結(jié): 比較推薦使用方法2,是因?yàn)榉椒?中沒有對(duì)應(yīng)index(index中的元素個(gè)數(shù)要跟數(shù)據(jù)個(gè)數(shù)相同)的限制,這樣方法2就會(huì)比較自由
創(chuàng)建成功之后,下一步就是取值,Series可通過索引和切片的方法進(jìn)行取值
三、Series的索引和切片
索引是為了獲取具體的值,而切片則是為了獲取一定范圍內(nèi)的值
1、顯式索引與切片
顯式索引
s.loc[‘索引名稱']? ? ? ? ?#使用index中元素的名稱作為索引值
示例: 取單個(gè)值:
obj = Series({‘a(chǎn)':10,‘b':12,‘c':17}) obj.loc[‘a(chǎn)'] ???? # 也可省略loc,即obj.loc[‘a(chǎn)']
取多個(gè)值:
obj.loc[[‘a(chǎn)',‘c']] ???? # 或 obj[[‘a(chǎn)',‘c']]
顯式切片:
obj = Series({‘a(chǎn)':10,‘b':12,‘c':17}) obj[‘a(chǎn)':‘c'] ? ? ? ? # 或 obj[‘a(chǎn)':‘c']
2、隱式索引與切片
隱式索引
s.iloc[]? ? ? ? #使用index中元素對(duì)應(yīng)的下標(biāo)作為索引值
示例: 取單個(gè)值:
obj = Series({‘a(chǎn)':10,‘b':12,‘c':17}) obj.iloc[0] ???? # 或 obj[0]
取多個(gè)值:
obj.iloc[[0, 1]] ???? # 或 obj[[0, 1]]
隱式切片:
obj = Series({‘a(chǎn)':10,‘b':12,‘c':17}) obj.iloc[0:2] ???? # 或 obj[0:2]
學(xué)了這個(gè)顯式和隱式的操作,可能大家有一些迷糊,那么進(jìn)行一下總結(jié):
- 顯式索引就是通過索引值獲取對(duì)應(yīng)索引的結(jié)果(loc可省略)
隱式索引就是通過索引的下標(biāo)獲取對(duì)應(yīng)索引的結(jié)果(.loc可省略) - 切片和取多個(gè)值的格式要注意區(qū)分:
切片的格式為: [:] 即 一個(gè)[], 中間的為冒號(hào),相當(dāng)于list中的切片
取多值的格式為:[[,]] 即 兩個(gè)[], 中間的分隔為逗號(hào)
- 注意切片操作中,顯式索引和隱式索引的區(qū)別
顯式索引是通過索引值獲取索引的結(jié)果,兩邊索引值對(duì)應(yīng)的值都能取到 左閉右閉
隱式索引為通過索引的下標(biāo)獲取的結(jié)果,只能取到左邊索引下標(biāo)對(duì)應(yīng)的值,右邊索引下標(biāo)對(duì)應(yīng)的值取不到,同python中的list切片 左閉右開
- 其實(shí)在Series中,有沒有l(wèi)oc或者iloc好像沒什么區(qū)別,但這并不說明loc和iloc就沒有用,個(gè)人覺得它更有意義的是在DataFrame當(dāng)中使用,而且,知道loc和iloc能閱讀明白他人的代碼,避免見到后不認(rèn)識(shí)
四、Series的基本概念
1、通過head(),tail()快速查看Series對(duì)象的樣式
1)先創(chuàng)建個(gè)測(cè)試數(shù)據(jù)
s = pd.Series(np.random.randint(1,10,size=(10,)))
2)獲取數(shù)據(jù)的前五行數(shù)據(jù)
s.head() # 默認(rèn)是前五行數(shù)據(jù),可自定義行數(shù),比如想要十行的話,s.head(10)
tail()是展示數(shù)據(jù)的后五行,也可自定義行數(shù), 例如:s.tail(10) 即 展示數(shù)據(jù)的后10行
2、isnull(),notnull()函數(shù)檢測(cè)缺失數(shù)據(jù)
缺失數(shù)據(jù)在Series中一般表示為: NaN(not a number)
1)創(chuàng)建測(cè)試數(shù)據(jù)
obj = Series([10,4,np.nan])
2)使用notnull()查看空值,為空則返回Flase,不為空則返回True
notnull = pd.notnull(obj)
3)根據(jù)isnull()返回的結(jié)果,取不為空的數(shù)據(jù)
obj[notnull]
isnull()跟notnull()的用法相同,只不過是,isnull()為空返回True,notnull()為空返回False
3、擴(kuò)展
可以把Series看成一個(gè)定長的有序字典 可以通過shape,size,index,values等得到series的屬性
五、Series的運(yùn)算
1、 適用于numpy的數(shù)組運(yùn)算也適用于Series
這個(gè)需要仔細(xì)了解numpy的運(yùn)算才行,這個(gè)就不擴(kuò)展了,大家有興趣的話,可上網(wǎng)上搜索下相關(guān)知識(shí)點(diǎn)
2、Series之間的運(yùn)算
首先說下Series之間常用的運(yùn)算:
add加 sub減 mul乘 div除
1)相同索引的數(shù)據(jù)進(jìn)行運(yùn)算, 如果索引不對(duì)應(yīng),則補(bǔ)NaN
①:測(cè)試數(shù)據(jù)
A = pd.Series([2,4,6],index=[0,1,2]) B = pd.Series([1,3,5],index=[1,2,3]) display(A,B)
②: 加運(yùn)算
A.add(B)
在A和B數(shù)據(jù)中,index(索引)中的1、2是相同的,所以對(duì)應(yīng)索引的數(shù)據(jù)進(jìn)行運(yùn)算,而其他索引對(duì)應(yīng)不上的則沒有相加的數(shù)值,所以值只能為NaN
擴(kuò)展
出現(xiàn)NaN的原因是,兩個(gè)Series中,索引相關(guān)的只對(duì)應(yīng)不上,但我現(xiàn)在不想讓這些對(duì)應(yīng)不上的為NaN,那么有什么辦法解決這個(gè)問題呢?
fill_value: 對(duì)空值賦值
A.add(B,fill_value=0)
fill_value的值為0時(shí),則是,將索引不對(duì)應(yīng)的補(bǔ)充為0, 如果自定義為,ill_value的值為1,則,將索引不對(duì)應(yīng)的補(bǔ)充為1
到此這篇關(guān)于關(guān)于數(shù)據(jù)分析Pandas的Series用法總結(jié)的文章就介紹到這了,更多相關(guān)Pandas的Series用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python 實(shí)現(xiàn)讀取csv數(shù)據(jù),分類求和 再寫進(jìn) csv
這篇文章主要介紹了python 實(shí)現(xiàn)讀取csv數(shù)據(jù),分類求和 再寫進(jìn) csv,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-05-05如何利用itertuples對(duì)DataFrame進(jìn)行遍歷
這篇文章主要介紹了如何利用itertuples對(duì)DataFrame進(jìn)行遍歷問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06Python 調(diào)用有道翻譯接口實(shí)現(xiàn)翻譯
這篇文章主要介紹了Python 調(diào)用有道翻譯接口實(shí)現(xiàn)翻譯,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03Python利用xmltodict模塊實(shí)現(xiàn)處理XML數(shù)據(jù)
理解和處理XML數(shù)據(jù)在Python中是一項(xiàng)常見任務(wù),xmltodict便是一個(gè)Python庫,用于將XML數(shù)據(jù)解析為易于處理的Python字典,下面我們就來學(xué)習(xí)一下xmltodict庫的具體使用吧2023-11-11運(yùn)行獨(dú)立 pyspark 時(shí)出現(xiàn) Windows 錯(cuò)誤解決辦法
在本篇文章里小編給大家分享的是一篇關(guān)于運(yùn)行獨(dú)立 pyspark 時(shí)出現(xiàn) Windows 錯(cuò)誤解決辦法,對(duì)此有需求的方法可以參考下。2021-12-12python實(shí)現(xiàn)請(qǐng)求數(shù)據(jù)包簽名
這篇文章主要介紹了python實(shí)現(xiàn)請(qǐng)求數(shù)據(jù)包簽名,主要以python怎么快速對(duì)請(qǐng)求體做一次簽名為主題,塑造實(shí)現(xiàn)請(qǐng)求數(shù)據(jù)包簽名過程,具有一定得參考價(jià)值,需要的小伙伴可以參考一下2022-02-02