您好,登錄后才能下訂單哦!
在數(shù)據(jù)分析行業(yè),對(duì)數(shù)據(jù)提出的每一個(gè)問題都可以用多種潛在的語言和工具包來回答。每種語言都有其優(yōu)勢(shì),它們之間也存在著不同的區(qū)別。不能否認(rèn)的是,有些操作用Python執(zhí)行起來要比SQL更加高效。這篇文章分享了4個(gè)能夠節(jié)省時(shí)間的案例,在這幾個(gè)案例中,Python在探索和分析數(shù)據(jù)集方面遠(yuǎn)遠(yuǎn)優(yōu)于SQL。
描述性統(tǒng)計(jì)
假設(shè)你正在探索新的數(shù)據(jù)集,可以使用許多不同的方法來統(tǒng)計(jì)描述這些數(shù)據(jù),并得到總體感知。例如:
· 計(jì)數(shù)
· 平均值
· 標(biāo)準(zhǔn)偏差
· 最小值
· 第一四分位數(shù)
· 第二四分位數(shù)(中位數(shù))
· 第三四分位數(shù)
· 最大值
要想在SQL中得到以上信息,你需要輸入:
但也許你并不想輸入以上所有代碼。你可以使用pandas的DataFrame.describe()函數(shù)來得出基礎(chǔ)數(shù)據(jù)集的基本描述性統(tǒng)計(jì)信息。
datasets['Python Input'].describe().round(1)
查看此報(bào)告并仿照該報(bào)告自行探索描述性統(tǒng)計(jì)。
移動(dòng)平均值
假設(shè)你現(xiàn)在想計(jì)算移動(dòng)平均值,以便于在輸入不斷變化的情況下得到其明確的平均值。移動(dòng)平均值有助于消除數(shù)據(jù)驟降和峰值的影響,從而使長期趨勢(shì)更加顯而易見。
在SQL中,你可以輸入這樣的查詢(query):
在Python中,只需以下代碼便可快速得到相同的兩周移動(dòng)平均值:
另外,Python能夠進(jìn)一步實(shí)現(xiàn)可視化。
樞軸
要想重新排列數(shù)據(jù)與樞軸以繪制圖表或是演示文稿格式,在SQL中需要幾個(gè)步驟才能實(shí)現(xiàn)。在這個(gè)案例中,需要將Mode Public Warehouse中大學(xué)橄欖球運(yùn)動(dòng)員的數(shù)據(jù)集從行樞軸轉(zhuǎn)換到列樞軸。
首先,要匯總每年、每場(chǎng)比賽的運(yùn)動(dòng)員的信息來準(zhǔn)備數(shù)據(jù)。
轉(zhuǎn)換數(shù)據(jù)之后,需要將查詢(query)嵌入子查詢(subquery)中。
接下來,如果你想將結(jié)果按照年份分成幾列,可以用SELECT語句為每個(gè)項(xiàng)單獨(dú)創(chuàng)建列。
雖然這能使你很好地控制查詢和進(jìn)程,但是用Python操作實(shí)則要更加輕松。當(dāng)你從年份和比賽中SELECT大學(xué)橄欖球運(yùn)動(dòng)員后,可以跳轉(zhuǎn)到Notebook并運(yùn)行DataFrame.pivot。你能根據(jù)列值重塑數(shù)據(jù),因而可以重新排列結(jié)果集。
DataFrame.pivot
自連接
在很多情況下,你可能想要將一個(gè)表與其自身連接起來。要想創(chuàng)建自連接(self join),需要先輸入此查詢,以便為同一張表創(chuàng)建不同的引用名稱。
在pandas中,我們可以這樣實(shí)現(xiàn):
想自己嘗試建立自連接嗎?仿照這篇報(bào)告來撰寫你的個(gè)人Mode報(bào)告吧!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。