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

付費下載

VIP免費下載

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

文檔簡介

8個Python高效數(shù)據(jù)分析的技巧這篇文章介紹了8個使用Python進行數(shù)據(jù)分析的方法,不僅能夠提升運行效率,還能夠使代碼更加“優(yōu)美”。01一行代碼定義List定義某種列表時,寫For循環(huán)過于麻煩,幸運的是,Python有一種內(nèi)置的方法可以在一行代碼中解決這個問題。下面是使用For循環(huán)創(chuàng)建列表和用一行代碼創(chuàng)建列表的對比。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表達式厭倦了定義用不了幾次的函數(shù)?Lambda表達式是你的救星!Lambda表達式用于在Python中創(chuàng)建小型,一次性和匿名函數(shù)對象,它能替你創(chuàng)建一個函數(shù)。lambda表達式的基本語法是:lambdaarguments:expression注意!只要有一個lambda表達式,就可以完成常規(guī)函數(shù)可以執(zhí)行的任何操作。

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

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

在本例中,它遍歷每個元素并乘以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ù)接受一個列表和一條規(guī)則,就像map一樣,但它通過比較每個元素和布爾過濾規(guī)則來返回原始列表的一個子集。#Filterseq=[1,2,3,4,5]result=list(filter(lambdax:x>2,seq))print(result)

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

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

array([3,5])Linspace和Arrange非常相似,但略有不同。Linspace以指定數(shù)目均勻分割區(qū)間,所以給定區(qū)間start和end,以及等分分割點數(shù)目num,linspace將返回一個NumPy數(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矩陣中求和值時,可能會遇到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屬性返回一個元組,第一個值代表行數(shù),第二個值代表列數(shù)。如果你想在Python中對其進行索引,則行數(shù)下標(biāo)為0,列數(shù)下標(biāo)為1,這很像我們?nèi)绾温暶鬏S值。06Concat,Merge和Join如果您熟悉SQL,那么這些概念對你來說可能會更容易。

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

在哪個時間跟蹤哪一個最適合使用可能很困難,所以讓我們回顧一下。Concat允許用戶在表格下面或旁邊追加一個或多個DataFrame(取決于您如何定義軸)。Merge將多個DataFrame合并指定主鍵(Key)相同的行。Join,和Merge一樣,合并了兩個DataFrame。但它不按某個指定的主鍵合并,而是根據(jù)相同的列名或行名合并。07PandasApplyApply是為PandasSeries而設(shè)計的。如果你不太熟悉Series,可以將它想成類似Numpy的數(shù)組。Apply將一個函數(shù)應(yīng)用于指定軸上的每一個元素。使用Apply,可以將DataFrame列(是一個Series)的值進行格式設(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ù)。

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

溫馨提示

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

評論

0/150

提交評論