數(shù)據(jù)查詢與篩選:Excel、SQL、PowerBI、Python,比比誰(shuí)更快
在開(kāi)始之前,再次強(qiáng)調(diào)一下:
- 本內(nèi)容為高頻常用的數(shù)據(jù)處理操作對(duì)比,不涉及底層技術(shù)問(wèn)題,煩請(qǐng)愛(ài)鉆牛角的杠精繞行。
- 本內(nèi)容盡量簡(jiǎn)單直白、詳細(xì)步驟,適合數(shù)據(jù)分析入門(mén)。特別喜歡技術(shù)語(yǔ)言的大佬們,可自行跳過(guò)。
關(guān)于網(wǎng)友的留言,老海也反饋一下自己的看法
之前有網(wǎng)友留言說(shuō):
- “SQL從來(lái)不是工具,它是語(yǔ)言!”
說(shuō)實(shí)話,我很吃驚。在我的理解中,語(yǔ)言的本質(zhì)就是工具,而百度百科也是這樣定義的:
語(yǔ)言即傳遞信息的聲音。是人類(lèi)最重要的交際工具,是人們進(jìn)行溝通的主要表達(dá)方式
自然語(yǔ)言也好、計(jì)算機(jī)語(yǔ)言、數(shù)據(jù)庫(kù)語(yǔ)言也好,就是人與人、人與機(jī)之間溝通的一種編碼解碼工具。

語(yǔ)言作為一種溝通工具,通常需要通過(guò)一定的實(shí)體載體來(lái)記錄和傳達(dá),不能獨(dú)立存在。
就如英語(yǔ)是門(mén)語(yǔ)言,也是溝通工具,而聽(tīng)、說(shuō)、讀、寫(xiě)是它的傳達(dá)方式,是工具化的載體。
SQL也是一樣,它是語(yǔ)言工具,而MySQL、HiveSQL等等數(shù)據(jù)庫(kù)工具都是它的設(shè)計(jì)表達(dá)載體。
回頭看我們?yōu)槭裁匆獙W(xué)英語(yǔ)?,為什么要學(xué)Python?,為什么要學(xué)SQL?
相信你的理由,絕對(duì)不僅僅它是一門(mén)語(yǔ)言或者文化,否則只會(huì)像高中應(yīng)試外語(yǔ)那么難受!
更多的時(shí)候是出于實(shí)現(xiàn)某種目的,而刺激我們主動(dòng)去尋找這樣一種可以實(shí)現(xiàn)思考溝通的工具
總之,語(yǔ)言即是工具。凡是工具,不拘一格,皆為所用!
還有網(wǎng)友留言說(shuō):
- “Power BI 只是可視化厲害一點(diǎn)兒,其他都不行”
OK,我們來(lái)看看這幾年P(guān)owerBI發(fā)展趨勢(shì),你會(huì)發(fā)現(xiàn)它比Tableau更加強(qiáng)大,與其他BI產(chǎn)品的差異也是越來(lái)越大,這與微軟本身的用戶環(huán)境和軟件家族存在很大關(guān)系。

2020

2019年
再來(lái)看看招聘網(wǎng)站上的要求,PowerBI近幾年開(kāi)始逐步成為主力工具,比如運(yùn)營(yíng)部門(mén)、財(cái)務(wù)部門(mén)、商業(yè)分析等覆蓋的業(yè)務(wù)范圍越來(lái)越廣。

餓了吧招聘要求

阿里招聘要求
以前Python一直是我的主力工具,可是現(xiàn)在老海強(qiáng)推Power BI,甚至建議首選它來(lái)做商業(yè)分析
一個(gè)公式:Power BI 數(shù)據(jù)分析流程 = PQ + PP + PV
即PowerQuery—數(shù)據(jù)處理查詢、PowerPivot—數(shù)據(jù)結(jié)構(gòu)建模、PowerView—數(shù)據(jù)圖表可視化
這個(gè)流程順序,也是所有分析工具都通用的套路,使用起來(lái)自然相當(dāng)順手舒服。
而且Power BI可以徹底解決很多在Python或者Excel中讓人煩透了的問(wèn)題,比如:
- 做個(gè)圖表再也不用寫(xiě)Python幾十甚至上百行的代碼,也不用調(diào)整N多了Excel圖表參數(shù)。
- 做個(gè)表格直接星型連接,再也不用pandas來(lái)回join、也不用Excel迷之效果的VLOOKUP函數(shù)
- 做個(gè)分析,前期用Python處理數(shù)據(jù),后期用Excel出圖表,現(xiàn)在直接PowerBI搞定!
具體的這里不多說(shuō)了,感興趣的可以看看我的問(wèn)答,里面專(zhuān)門(mén)有寫(xiě)到。
總之,老海認(rèn)為:Power BI絕非只有可視化,相信隨著版本迭代,未來(lái)足可代替Exce甚至是Python
OK,我們回過(guò)來(lái)繼續(xù)對(duì)比Excel、SQL、PowerBI與Python
之前已經(jīng)介紹了數(shù)據(jù)準(zhǔn)備和導(dǎo)入,不了解的可自行翻看之前的文章。
今天涉及數(shù)據(jù)的查看與篩選,廢話不多說(shuō)直接上操作演示:
查看與篩選數(shù)據(jù)
當(dāng)使用Excel時(shí):
第一步:可以先觀察一下數(shù)據(jù)情況,比如行數(shù)、列數(shù),首行以及尾行,
可以使用shift + ctrl + 方向鍵 ↓ ,直接拉到底部查看

查看行數(shù)&列數(shù)
使用shift + ctrl + 方向鍵 ↑,來(lái)查看最前面的數(shù)據(jù)情況

查看最前面的數(shù)據(jù)
第二步:也可以選中整個(gè)列來(lái)查看特定字段的數(shù)據(jù)情況

特定字段
第三步:或者查看前10行數(shù)據(jù)

前10行
第四步:查看最大或者最小的前10行數(shù)據(jù)

最大前10行
第五步:查看不同數(shù)據(jù)列的空值情況

第六步:查看符合某個(gè)條件的數(shù)據(jù)情況


第7步:選擇“篩選”中的“高級(jí)”,可以進(jìn)行多條件篩選數(shù)據(jù),比如同時(shí)滿足天津市購(gòu)買(mǎi)量大于2、武漢市購(gòu)買(mǎi)量大于3

第8步:高級(jí)篩選也可以實(shí)現(xiàn)多條件或關(guān)系篩選數(shù)據(jù),即滿足其中一個(gè)條件即可。

第9步:查看特定列名去重的數(shù)據(jù)情況,可以選擇“數(shù)據(jù)”中的“刪除重復(fù)項(xiàng)”來(lái)實(shí)現(xiàn)


也可以通過(guò)“數(shù)據(jù)”中“篩選”下的“高級(jí)”來(lái)完成,此處注意勾選“不重復(fù)的記錄”

第10步:查看去重后數(shù)據(jù)的統(tǒng)計(jì)情況,此方法類(lèi)似于python的value_couts

當(dāng)使用SQL時(shí):
第1步:查看數(shù)據(jù)情況

第2步:查看前10行數(shù)據(jù)

第3步:查看某個(gè)條件的數(shù)據(jù),比如查看門(mén)店城市為天津的數(shù)據(jù)

第4步:查看滿足多個(gè)條件中任一個(gè)的數(shù)據(jù),比如查看天津或者武漢的數(shù)據(jù)

第5步:查看特定列名數(shù)據(jù)

第6步:查看特定列名的去重后數(shù)據(jù)的統(tǒng)計(jì)數(shù)量。比如門(mén)店城市共計(jì)多少

第7步:查看特定列名去重?cái)?shù)據(jù),查看去重后的具體城市名稱(chēng)

第8步:查看非空值記錄與空值記錄


當(dāng)使用Power BI時(shí):
第1步:查看數(shù)據(jù)基本情況,在“主頁(yè)”下選擇“轉(zhuǎn)換數(shù)據(jù)”,進(jìn)入PQ編輯器,查看數(shù)據(jù)。

第2步:選中某個(gè)字段,在左下角可以查看非重復(fù)值的數(shù)量

第3步:在PQ編輯器中,可以使用各類(lèi)查看功能,比如保留最前幾行、最后幾行等等

第4步:查看特定的字段列數(shù)據(jù),點(diǎn)擊“選擇列”來(lái)篩選特定的字段列即可

第5步:查看符合某個(gè)條件的數(shù)據(jù)情況,可點(diǎn)擊字段右側(cè)的下拉箭頭來(lái)篩選



第6步:查看去重后的數(shù)量統(tǒng)計(jì)情況,可以使用PQ編輯器中“轉(zhuǎn)換”下的“統(tǒng)計(jì)信息”中的“對(duì)非重復(fù)值進(jìn)行計(jì)數(shù)”

第7步:查看不同數(shù)據(jù)值的統(tǒng)計(jì)情況,點(diǎn)擊字段右側(cè)箭頭,選擇“分組依據(jù)”,設(shè)置分組字段以及計(jì)算的方式,即可完成分組統(tǒng)計(jì)。



當(dāng)使用Python時(shí):
第1步:查看數(shù)據(jù)情況,主要看看是否存在亂碼,以及數(shù)據(jù)的整體規(guī)模是否正確

第2步:查看數(shù)據(jù)前10行情況,主要查看不同字段下的數(shù)據(jù)格式情況,當(dāng)然還可使用.dtypes查看當(dāng)前字段的數(shù)據(jù)類(lèi)型是否合理。


第3步:查看特定列的數(shù)據(jù),一般建議使用loc、iloc進(jìn)行切片操作。

第4步:查看滿足某個(gè)條件的數(shù)據(jù),一般使用loc,配合條件篩選

第5步:查看滿足多個(gè)條件中任一條件的數(shù)據(jù),除了isin,還可以使用或與非的關(guān)系組合

第6步:查看是否存在空值,關(guān)于空值NULL,Nan的內(nèi)容,可翻閱老海之前的文章

第7步:查看特定列去重后的數(shù)據(jù),以及統(tǒng)計(jì)個(gè)數(shù)。


OK,限于篇幅和時(shí)間,本篇內(nèi)容先到這里了。老海原本計(jì)劃3篇完成,看來(lái)需要5篇才能全部寫(xiě)完。
歡迎關(guān)注后續(xù)內(nèi)容,涉及更新與刪除、分組聚合、多表關(guān)聯(lián)、多表聯(lián)合、排序與分組、存儲(chǔ)與導(dǎo)出等操作。