python骨灰技巧_Pandas技巧,某骨灰级Pythoner经验总结,呕心沥血!
原標(biāo)題:Pandas技巧,某骨灰級(jí)Pythoner經(jīng)驗(yàn)總結(jié),嘔心瀝血!
Python已迅速發(fā)展為數(shù)據(jù)科學(xué)家必備的編程語(yǔ)言。
python作為一種編程語(yǔ)言提供了更加優(yōu)秀、寬闊的生體系統(tǒng)與深度的科學(xué)計(jì)算庫(kù)。
在科學(xué)計(jì)算庫(kù)中,Pandas對(duì)數(shù)據(jù)科學(xué)最為有效。Pandas、Scikit-learn幾乎供給了數(shù)據(jù)科學(xué)家所有工具。本文旨在分享Python中數(shù)據(jù)處理的方法。別的,還會(huì)分享一些讓你工作可以變得更便捷的技巧。
在學(xué)習(xí)前,提醒一下,如果你有過(guò)閱讀Python數(shù)據(jù)挖掘(data exploration)的代碼。有利于大家更好的理解文章內(nèi)容。為了更好地理解,我使用了一個(gè)數(shù)據(jù)集來(lái)執(zhí)行這些數(shù)據(jù)操作和處理。
數(shù)據(jù)集:我使用了貸款預(yù)測(cè)(Loan Prediction)問(wèn)題的數(shù)據(jù)集。請(qǐng)先下載數(shù)據(jù)集,然后就可以開(kāi)始了。
第一步
導(dǎo)入模塊、加載數(shù)據(jù)集、搭建Python環(huán)境:
布爾索引
假如說(shuō),想由另一列的條件來(lái)篩選某一列的值,我們要怎么做?比如,我們想獲取一份完整的沒(méi)有畢業(yè)并獲得貸款的女性名單。能夠利用布爾索引實(shí)現(xiàn)。
Python代碼:
Apply函數(shù)
Apply是一個(gè)我們經(jīng)常會(huì)使用到的函數(shù),作用是創(chuàng)建新變量、處理數(shù)據(jù)。當(dāng)我們?cè)诶媚承┖瘮?shù)傳遞一個(gè)數(shù)據(jù)幀的每一行或列的時(shí)候,Apply函數(shù)會(huì)返回相應(yīng)的值。不管這個(gè)函數(shù)是系統(tǒng)自帶的,還是用戶定義的。
例如,它可以作用于找到任一列、行的缺失值。
利用這個(gè),得到了我們想要的結(jié)果。
注:因?yàn)榻Y(jié)果中包含很多行,所以第二個(gè)輸出中使用了head()函數(shù)。
填補(bǔ)缺失值
‘fillna()’只要一次就能夠解決:以整列的平均數(shù)、眾數(shù)、中位數(shù)來(lái)替換缺失值。基于其各自的眾數(shù)填補(bǔ)出“性別”、“婚姻”、“自由職業(yè)”列的缺失值。
第一步:導(dǎo)入函數(shù)來(lái)判斷眾數(shù)
成效前往眾數(shù)和其出現(xiàn)頻次。請(qǐng)注意,眾數(shù)可所以一個(gè)數(shù)組,由于高頻的值可能有多個(gè)。我們通常默認(rèn)使用第一個(gè):
結(jié)果返回眾數(shù)與它出現(xiàn)的頻率。眾數(shù)也可以是一個(gè)數(shù)組,因?yàn)楦哳l的值存在有多個(gè)的可能性。那么我們通常默認(rèn)使用第一個(gè):
now,我們可以填補(bǔ)缺失值并用Apply函數(shù)里提到的方法來(lái)檢驗(yàn),填補(bǔ)缺失值并再次檢查缺失值,是否已經(jīng)確認(rèn)。
透視表
Pandas能夠用來(lái)創(chuàng)建MS Excel風(fēng)格的透視表。比如說(shuō),在本例中一個(gè)關(guān)鍵列是“貸款數(shù)額”有缺失值,能夠根據(jù)“性別”,“婚姻狀況”和“自由職業(yè)”分組后的平均金額來(lái)進(jìn)行替換。 那么“貸款數(shù)額”的各組均值怎么確定呢?
多索引
如果你看到了“填補(bǔ)缺失值”的輸出結(jié)果,它有一個(gè)特殊的特征。每一個(gè)索引都是由3個(gè)值組合構(gòu)成的。這個(gè)就是多索引。可以幫我們快速執(zhí)交運(yùn)算。
從“填補(bǔ)缺失值”的例子中開(kāi)始,我們有每個(gè)組的均值,但還沒(méi)有被填補(bǔ)。
這可以使用到如今為止學(xué)習(xí)到的各類技巧來(lái)處理,只在缺失貸款值的行中來(lái)迭代并再次檢驗(yàn)確認(rèn)。
關(guān)鍵:
1. 多索引必須在loc里講明的定義分組的索引元組。此元組能夠在函數(shù)中利用到。
2. values[0]這個(gè)后綴是必須的,默認(rèn)情況下元素返回的索引和原數(shù)據(jù)框的索引不匹配,直接賦值會(huì)報(bào)錯(cuò)。
交叉表
這個(gè)函數(shù)作用于獲取數(shù)據(jù)的一個(gè)第一“感受”(視圖)。在這里,可以驗(yàn)證一些基本設(shè)想。比如說(shuō),在這個(gè)例子中,“信用記錄”被認(rèn)為是最明顯影響貸款狀況。這可以使用交叉表驗(yàn)證,如下圖所示:
這些數(shù)據(jù)都是取的絕對(duì)值,用百分比更直觀。可以利用apply 函數(shù)實(shí)現(xiàn):
說(shuō)到了Pandas的不同函數(shù),一些能夠讓我們?cè)谔剿鱌ython數(shù)據(jù)和功能設(shè)計(jì)上更加舒適的函數(shù)。而且,我們定義了一些通用函數(shù),可以循環(huán)利用,在不同的數(shù)據(jù)集上達(dá)到差不多的結(jié)果。
喜歡的話關(guān)注收藏評(píng)論轉(zhuǎn)發(fā)比心么么噠!Python學(xué)習(xí)交流企-鵝-裙-588+090+942,裙內(nèi)有大量的項(xiàng)目開(kāi)發(fā)和新手教學(xué)視頻PDF書(shū)籍的千人大群等著你來(lái)加入返回搜狐,查看更多
責(zé)任編輯:
總結(jié)
以上是生活随笔為你收集整理的python骨灰技巧_Pandas技巧,某骨灰级Pythoner经验总结,呕心沥血!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: JAVA入门级教学之(package和i
- 下一篇: 嵌套饼图_你真的了解matplotlib