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