2020-04-28

從零開(kāi)始學(xué)Python【4】--pandas(序列部分)


上一期我們介紹了數(shù)據(jù)分析中常用的numpy模塊凳兵,從數(shù)組的創(chuàng)建百新、元素的獲取企软、數(shù)學(xué)+統(tǒng)計(jì)函數(shù)庐扫、隨機(jī)數(shù)的生成、到外部文件的讀取仗哨。這期我們?cè)賮?lái)介紹另一個(gè)重磅的數(shù)據(jù)分析常用模塊--pandas形庭。該模塊更像是R語(yǔ)言中的向量、數(shù)據(jù)框的處理厌漂,接下來(lái)我們就一一介紹里面的小知識(shí)點(diǎn)萨醒。

序列

序列(Series)可以理解成是R語(yǔ)言中的向量,Python中的列表苇倡、元組的高級(jí)版本富纸。為什么說(shuō)是高級(jí)版本呢?因?yàn)樾蛄信c上期介紹的一維數(shù)組類(lèi)似旨椒,具有更好的廣播效應(yīng)晓褪,既可以與一個(gè)標(biāo)量進(jìn)行運(yùn)算,又可以進(jìn)行元素級(jí)函數(shù)的計(jì)算综慎。如下例子所示:

列表與常數(shù)10相加涣仿,報(bào)錯(cuò),顯示無(wú)法將列表與整形值連接示惊,“+”運(yùn)算在列表中是連接操作好港。

將上面的列表轉(zhuǎn)換成一個(gè)序列后,就可以正常的完成運(yùn)算米罚,這就是序列的廣播能力钧汹。同樣,列表也不能用于元素級(jí)的數(shù)學(xué)函數(shù)录择,對(duì)比如下:

除了上面介紹序列功能拔莱,再來(lái)說(shuō)說(shuō)其他序列常用的場(chǎng)景,如序列的索引糊肠、成員關(guān)系辨宠、排重、排序货裹、計(jì)數(shù)嗤形、抽樣、統(tǒng)計(jì)運(yùn)算等弧圆。

序列的索引:

由于序列是列表的擴(kuò)張版赋兵,故序列也有一套類(lèi)似于列表的索引方法笔咽,具體如下:

>need-to-insert-img

倒數(shù)的方式取元素,序列就顯得不是很方便了霹期,我們推薦使用非常棒的iat方法叶组,該方法不管應(yīng)用于序列還是數(shù)據(jù)框都非常優(yōu)秀,主要體現(xiàn)在簡(jiǎn)介而高速历造。然而甩十,實(shí)際工作中很少通過(guò)位置索引(下標(biāo))的方法獲取到序列中的某些元素,例如1000個(gè)元素構(gòu)造的序列吭产,查出屬于某個(gè)范圍值總不能一個(gè)個(gè)去數(shù)吧侣监?序列提供了另一種索引的方法--布爾索引。具體用法如下:

我們知道臣淤,在R語(yǔ)言中一個(gè)向量的元素是否包含于另一個(gè)向量橄霉,可以使用%in%函數(shù)進(jìn)行判斷,同理邑蒋,Python中也有類(lèi)似的方法姓蜂。對(duì)于一個(gè)一維數(shù)組,in1d函數(shù)實(shí)現(xiàn)該功能医吊;對(duì)于一個(gè)序列钱慢,isin方法可實(shí)現(xiàn)該功能。

numpy模塊中的in1d函數(shù)也可以用于序列的成員關(guān)系的比較遮咖。

如果手中有一離散變量的序列滩字,想查看該序列都有哪些水平,以及各個(gè)水平的頻次御吞,該如何操作麦箍?

沒(méi)錯(cuò),只要借助于unique函數(shù)(與R語(yǔ)言一樣的函數(shù))實(shí)現(xiàn)序列的排重陶珠,獲得不同的水平值挟裂;通過(guò)使用value_counts函數(shù)(對(duì)應(yīng)于R語(yǔ)言的table函數(shù))對(duì)各個(gè)水平進(jìn)行計(jì)數(shù),并按頻次降序呈現(xiàn)揍诽。

有的時(shí)候需要對(duì)某個(gè)序列進(jìn)行升序或降序排序诀蓉,雖然這樣的場(chǎng)景并不多,但排序在數(shù)據(jù)框中的應(yīng)用還是非常常用的暑脆,先來(lái)看看如何對(duì)序列進(jìn)行排序:

s.sample(n=None, frac=None, replace=False, weights=None, random_state=None,axis=None)

n:指定抽取的樣本量渠啤;

frac:指定抽取的樣本比例;

replace:是否有放回抽樣添吗,默認(rèn)無(wú)放回沥曹;

weights:指定樣本抽中的概率,默認(rèn)等概論抽樣;

random_state:指定抽樣的隨機(jī)種子妓美;

抽樣也是數(shù)據(jù)分析中常用的方法僵腺,通過(guò)從總體中抽取出一定量的樣本來(lái)推斷總體水平;或者通過(guò)抽樣將數(shù)據(jù)拆分成兩部分壶栋,一部分建模辰如,一部分測(cè)試。pandas模塊提供了sample函數(shù)(與R語(yǔ)言的sample函數(shù)一致)幫我們完成抽樣的任務(wù)贵试。

由于總體就是男琉兜、女性別兩個(gè)值,故需要抽出10個(gè)樣本锡移,必須有放回的抽呕童,而且男女被抽中的概率還不一致漆际,女被抽中的概率是0.8淆珊。

統(tǒng)計(jì)運(yùn)算

pandas模塊提供了比numpy模塊更豐富的統(tǒng)計(jì)運(yùn)算函數(shù),而且還提供了類(lèi)似于R語(yǔ)言中的summary匯總函數(shù)奸汇,即describe函數(shù)施符。

其中count是序列中非缺失元素的個(gè)數(shù)。哦擂找,對(duì)了戳吝,如何判斷一個(gè)序列元素是否為缺失呢?可以使用isnull函數(shù)贯涎,等同于R語(yǔ)言中的is.na函數(shù)听哭。

除此,我們?cè)賮?lái)羅列一些常用的統(tǒng)計(jì)函數(shù):

s.min() # 最小值

s.quantile(q=[0,0.25,0.5,0.75,1]) # 分位數(shù)函數(shù)

s.median() # 中位數(shù)

s.mode() # 眾數(shù)

s.mean() # 平均值

s.mad() # 平均絕對(duì)誤差

s.max # 最大值

s.sum() # 和

s.std() # 標(biāo)準(zhǔn)差s.kurtosis() # 峰度

s.cumsum() # 和的累計(jì)塘雳,返回序列

s.cumprod() # 乘積的累積陆盘,返回序列

s.product() # 序列元素乘積

s.diff() # 序列差異(微分),返回序列

s.abs() # 絕對(duì)值败明,返回序列

s.pct_change() # 百分比變化 隘马,返回序列s.corr(s2) # 相關(guān)系數(shù)

s.ptp() # 極差 R中的range函數(shù)

今天我們的內(nèi)容就介紹到這邊,歡迎大家拍磚妻顶。下期我們來(lái)聊聊pandas模塊的數(shù)據(jù)框

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末酸员,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子讳嘱,更是在濱河造成了極大的恐慌幔嗦,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,718評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件沥潭,死亡現(xiàn)場(chǎng)離奇詭異邀泉,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)叛氨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)呼渣,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)棘伴,“玉大人,你說(shuō)我怎么就攤上這事屁置『缚洌” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 158,207評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵蓝角,是天一觀的道長(zhǎng)阱穗。 經(jīng)常有香客問(wèn)我,道長(zhǎng)使鹅,這世上最難降的妖魔是什么揪阶? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,755評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮患朱,結(jié)果婚禮上鲁僚,老公的妹妹穿的比我還像新娘。我一直安慰自己裁厅,他們只是感情好冰沙,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著执虹,像睡著了一般拓挥。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上袋励,一...
    開(kāi)封第一講書(shū)人閱讀 50,050評(píng)論 1 291
  • 那天侥啤,我揣著相機(jī)與錄音,去河邊找鬼茬故。 笑死盖灸,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的均牢。 我是一名探鬼主播糠雨,決...
    沈念sama閱讀 39,136評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼徘跪!你這毒婦竟也來(lái)了甘邀?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,882評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤垮庐,失蹤者是張志新(化名)和其女友劉穎松邪,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體哨查,經(jīng)...
    沈念sama閱讀 44,330評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡逗抑,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片邮府。...
    茶點(diǎn)故事閱讀 38,789評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡荧关,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出褂傀,到底是詐尸還是另有隱情忍啤,我是刑警寧澤,帶...
    沈念sama閱讀 34,477評(píng)論 4 333
  • 正文 年R本政府宣布仙辟,位于F島的核電站同波,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏叠国。R本人自食惡果不足惜未檩,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評(píng)論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望粟焊。 院中可真熱鬧冤狡,春花似錦、人聲如沸吆玖。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,864評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)沾乘。三九已至,卻和暖如春浑测,著一層夾襖步出監(jiān)牢的瞬間翅阵,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,099評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工迁央, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留掷匠,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,598評(píng)論 2 362
  • 正文 我出身青樓岖圈,卻偏偏與公主長(zhǎng)得像讹语,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蜂科,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容