拿去!8個(gè)Python高效數(shù)據(jù)分析的技巧_第1頁
拿去!8個(gè)Python高效數(shù)據(jù)分析的技巧_第2頁
拿去!8個(gè)Python高效數(shù)據(jù)分析的技巧_第3頁
拿去!8個(gè)Python高效數(shù)據(jù)分析的技巧_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

8個(gè)Python高效數(shù)據(jù)分析的技巧這篇文章介紹了8個(gè)使用Python進(jìn)行數(shù)據(jù)分析的方法,不僅能夠提升運(yùn)行效率,還能夠使代碼更加“優(yōu)美”。01一行代碼定義List定義某種列表時(shí),寫For循環(huán)過于麻煩,幸運(yùn)的是,Python有一種內(nèi)置的方法可以在一行代碼中解決這個(gè)問題。下面是使用For循環(huán)創(chuàng)建列表和用一行代碼創(chuàng)建列表的對(duì)比。x=[1,2,3,4]out=[]foriteminx:out.append(item**2)print(out)

[1,4,9,16]

#vs.

x=[1,2,3,4]out=[item**2foriteminx]print(out)

[1,4,9,16]02Lambda表達(dá)式厭倦了定義用不了幾次的函數(shù)?Lambda表達(dá)式是你的救星!Lambda表達(dá)式用于在Python中創(chuàng)建小型,一次性和匿名函數(shù)對(duì)象,它能替你創(chuàng)建一個(gè)函數(shù)。lambda表達(dá)式的基本語法是:lambdaarguments:expression注意!只要有一個(gè)lambda表達(dá)式,就可以完成常規(guī)函數(shù)可以執(zhí)行的任何操作。

你可以從下面的例子中,感受lambda表達(dá)式的強(qiáng)大功能:double=lambdax:x*2print(double(5))

1003Map和Filter一旦掌握了lambda表達(dá)式,學(xué)習(xí)將它們與Map和Filter函數(shù)配合使用,可以實(shí)現(xiàn)更為強(qiáng)大的功能。具體來說,map通過對(duì)列表中每個(gè)元素執(zhí)行某種操作并將其轉(zhuǎn)換為新列表。

在本例中,它遍歷每個(gè)元素并乘以2,構(gòu)成新列表。

(注意!list()函數(shù)只是將輸出轉(zhuǎn)換為列表類型)#Mapseq=[1,2,3,4,5]result=list(map(lambdavar:var*2,seq))print(result)

[2,4,6,8,10]Filter函數(shù)接受一個(gè)列表和一條規(guī)則,就像map一樣,但它通過比較每個(gè)元素和布爾過濾規(guī)則來返回原始列表的一個(gè)子集。#Filterseq=[1,2,3,4,5]result=list(filter(lambdax:x>2,seq))print(result)

[3,4,5]04Arange和LinspaceArange返回給定步長的等差列表。它的三個(gè)參數(shù)start、stop、step分別表示起始值,結(jié)束值和步長,

請(qǐng)注意!stop點(diǎn)是一個(gè)“截止”值,因此它不會(huì)包含在數(shù)組輸出中。#np.arange(start,stop,step)np.arange(3,7,2)

array([3,5])Linspace和Arrange非常相似,但略有不同。Linspace以指定數(shù)目均勻分割區(qū)間,所以給定區(qū)間start和end,以及等分分割點(diǎn)數(shù)目num,linspace將返回一個(gè)NumPy數(shù)組。

這對(duì)繪圖時(shí)數(shù)據(jù)可視化和聲明坐標(biāo)軸特別有用。#np.linspace(start,stop,num)np.linspace(2.0,3.0,num=5)

array([2.0,2.25,2.5,2.75,3.0]05Axis代表什么在Pandas中,刪除一列或在NumPy矩陣中求和值時(shí),可能會(huì)遇到Axis。我們用刪除一列(行)的例子:df.drop('ColumnA',axis=1)df.drop('RowA',axis=0)如果你想處理列,將Axis設(shè)置為1,如果你想要處理行,將其設(shè)置為0。但為什么呢?

回想一下Pandas中的shape。df.shape(#ofRows,#ofColumns)從PandasDataFrame中調(diào)用shape屬性返回一個(gè)元組,第一個(gè)值代表行數(shù),第二個(gè)值代表列數(shù)。如果你想在Python中對(duì)其進(jìn)行索引,則行數(shù)下標(biāo)為0,列數(shù)下標(biāo)為1,這很像我們?nèi)绾温暶鬏S值。06Concat,Merge和Join如果您熟悉SQL,那么這些概念對(duì)你來說可能會(huì)更容易。

無論如何,這些函數(shù)本質(zhì)上就是以特定方式組合DataFrame的方式。

在哪個(gè)時(shí)間跟蹤哪一個(gè)最適合使用可能很困難,所以讓我們回顧一下。Concat允許用戶在表格下面或旁邊追加一個(gè)或多個(gè)DataFrame(取決于您如何定義軸)。Merge將多個(gè)DataFrame合并指定主鍵(Key)相同的行。Join,和Merge一樣,合并了兩個(gè)DataFrame。但它不按某個(gè)指定的主鍵合并,而是根據(jù)相同的列名或行名合并。07PandasApplyApply是為PandasSeries而設(shè)計(jì)的。如果你不太熟悉Series,可以將它想成類似Numpy的數(shù)組。Apply將一個(gè)函數(shù)應(yīng)用于指定軸上的每一個(gè)元素。使用Apply,可以將DataFrame列(是一個(gè)Series)的值進(jìn)行格式設(shè)置和操作,不用循環(huán),非常有用!df=pd.DataFrame([[4,9],]*3,columns=['A','B'])dfAB049149249

df.apply(np.sqrt)AB02.03.012.03.022.03.0

df.apply(np.sum,axis=0)A12B27

df.apply(np.sum,axis=1)01311321308PivotTables如果您熟悉MicrosoftExcel,那么你也許聽說過數(shù)據(jù)透視表。

Pandas內(nèi)置的pivot_table函數(shù)以DataFrame的形式創(chuàng)建電子表格樣式的數(shù)據(jù)透視表,,它可以幫助我們快速查看某幾列的數(shù)據(jù)。

下面是幾個(gè)例子:非常智能地將數(shù)據(jù)按照“Manager”分了組:pd.pivot_table(df

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論