pandas中Series的使用方式
pandas的應(yīng)用
pandas的核心數(shù)據(jù)類型是Series(數(shù)據(jù)系列)、DataFrame(數(shù)據(jù)表/數(shù)據(jù)框),反別用于處理一維和二維的數(shù)據(jù)。
還有一個(gè)Index類型的子類型,它為Series和Dataframe提供了索引功能
創(chuàng)建Series對(duì)象
Series對(duì)象用來表示一維數(shù)據(jù)結(jié)構(gòu),跟數(shù)組非常類似,但是多了一些功能。
Series的內(nèi)部結(jié)構(gòu)包含了兩個(gè)數(shù)組,其中一個(gè)用來保存數(shù)據(jù),另一個(gè)用來保存數(shù)據(jù)的索引。
還可以使用字典的方式來創(chuàng)建
索引
Series對(duì)象也可以進(jìn)行索引和切片的操作,不同的是Series對(duì)象因?yàn)閮?nèi)部維護(hù)了一個(gè)保護(hù)索引的數(shù)組。
除了可以使用整數(shù)索引通過位置檢索數(shù)據(jù)外,還可以通過自己設(shè)置的檢索標(biāo)簽獲取相對(duì)應(yīng)的數(shù)據(jù)。
第一種,通過位置索引,并修改數(shù)據(jù)
第二種,使用自定義標(biāo)簽
花式索引
花式索引和普通索引的區(qū)別最外一層為方括號(hào)[ ]
布爾索引
用來判斷列表中數(shù)值的范圍
Series對(duì)象的常用屬性
# 求和 print(ser2.sum()) # 求均值 print(ser2.mean()) # 求最大 print(ser2.max()) # 求最小 print(ser2.min()) # 計(jì)數(shù) print(ser2.count()) # 求標(biāo)準(zhǔn)差 print(ser2.std()) # 求方差 print(ser2.var()) # 求中位數(shù) print(ser2.median())
describe()方法
describe()方法:可以獲得上述所有的描述性統(tǒng)計(jì)信息,如方差,標(biāo)準(zhǔn)差,中位數(shù)等等
對(duì)于某一特定的值,也可以通過索引的方式獲得
value_count()方法
如果想要統(tǒng)計(jì)每個(gè)值重復(fù)的次數(shù),可以使用value_counts()方法,這個(gè)方法會(huì)返回一個(gè)Series對(duì)象,它的索引就是原來的Series對(duì)象中的值,而每個(gè)值出現(xiàn)的次數(shù)就是返回的Series對(duì)象中的數(shù)據(jù),在默認(rèn)情況下會(huì)按照出現(xiàn)次數(shù)做降序排列。
ser3 = pd.Series(data=['apple', 'banana', 'apple', 'pitaya', 'apple', 'pitaya', 'durian']) ser3.value_counts()
unique() 方法
如果Series對(duì)象有重復(fù)的值,我們可以使用unique()方法獲得去重之后的Series對(duì)象;
可以使用nunique()方法統(tǒng)計(jì)不重復(fù)值的數(shù)量 數(shù)據(jù)處理的方法。
isnull()和notnull()
Series對(duì)象的isnull()和notnull()方法可以用于空值的判斷
dropna()和fillna()分別用來刪除空值和填充空值
dropna()和fillna()方法都有一個(gè)名為inplace的參數(shù),它的默認(rèn)值是False,表示刪除空值或填充空值不會(huì)修改原來的Series對(duì)象,而是返回一個(gè)新的Series對(duì)象來表示刪除或填充空值后的數(shù)據(jù)系列,如果將inplace參數(shù)的值修改為True,那么刪除或填充空值會(huì)就地操作,直接修改原來的Series對(duì)象,那么方法的返回值是None。
后面我們會(huì)接觸到的很多方法,包括DataFrame對(duì)象的很多方法都會(huì)有這個(gè)參數(shù),它們的意義跟這里是一樣的。
mask()和where()
- mask():可以將滿足條件的全部替換
- where():將不滿足條件的替換
duplicated()和drop_duplicates()
- duplicated()方法可以幫助找出重復(fù)的數(shù)據(jù),根據(jù)布爾值顯示是否重復(fù)
- drop_duplicates()可以幫助刪除重復(fù)的數(shù)據(jù)
apply()和map()
map()可以不通過索引,直接通過內(nèi)容來進(jìn)行修改數(shù)據(jù)
apply()可以將原始值通過一定的計(jì)算,得到想要的數(shù)組
排序和取頭部值的方法
Series對(duì)象的sort_index()和sort_values()方法可以用于對(duì)索引和數(shù)據(jù)的排序,排序方法有一個(gè)名為ascending的布爾類型參數(shù),該參數(shù)用于控制排序的結(jié)果是升序還是降序;
而名為kind的參數(shù)則用來控制排序使用的算法,默認(rèn)使用了quicksort,也可以選擇mergesort或heapsort;
如果存在空值,那么可以用na_position參數(shù)空值放在最前還是最后,默認(rèn)是last
- sort_values() 按值從小到大排序
- sort_values(ascending=False) 按值從大到小
- 取頭部
如果要從Series對(duì)象中找出元素中最大或最小的“Top-N”,實(shí)際上是不需要對(duì)所有的值進(jìn)行排序的,可以使用nlargest()和nsmallest()方法來完成
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python 循環(huán)讀取數(shù)據(jù)內(nèi)存不足的解決方案
這篇文章主要介紹了Python 循環(huán)讀取數(shù)據(jù)內(nèi)存不足的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05Python使用asyncio標(biāo)準(zhǔn)庫對(duì)異步IO的支持
Python中,所有程序的執(zhí)行都是單線程的,但可同時(shí)執(zhí)行多個(gè)任務(wù),不同的任務(wù)被時(shí)間循環(huán)(Event Loop)控制及調(diào)度,Asyncio是Python并發(fā)編程的一種實(shí)現(xiàn)方式;是Python 3.4版本引入的標(biāo)準(zhǔn)庫,直接內(nèi)置了對(duì)異步IO的支持2023-11-11Pycharm+Flask零基礎(chǔ)項(xiàng)目搭建入門的實(shí)現(xiàn)
本文主要介紹了Pycharm+Flask零基礎(chǔ)項(xiàng)目搭建入門的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04Django3.2 自動(dòng)發(fā)現(xiàn)所有路由代碼詳解
這篇文章主要為大家介紹了Django自動(dòng)發(fā)現(xiàn)所有路由的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2021-12-12python使用cartopy庫繪制臺(tái)風(fēng)路徑代碼
大家好,本篇文章主要講的是python使用cartopy庫繪制臺(tái)風(fēng)路徑代碼,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下2022-02-02python生成器generator:深度學(xué)習(xí)讀取batch圖片的操作
這篇文章主要介紹了python生成器generator:深度學(xué)習(xí)讀取batch圖片的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05Tornado源碼分析之HTTP服務(wù)請(qǐng)求解析
這篇文章主要為大家介紹了Tornado源碼分析之HTTP服務(wù)請(qǐng)求解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09