利用Python 進行資料分析 ch02

2021-07-26 08:16:30 字數 2386 閱讀 5897

1.  path = 「e:\\xx\\xx\names\\yob1880.txt」 

因為是字串,所以要加轉義字元才能順利找到路徑

2.  pandas.read_csv()  

讀取csv(逗號分割)檔案到dataframe,也支援檔案的部分匯入和選擇迭代。一些引數:

(1)filepath_or_buffer:str,pathlib,str,pathlib.path,py._path.local.localpathor any object with a read() method (such as a file handle or stringio)。可以是url,可用url型別包括:http, ftp, s3和檔案。

(2)sep : str, default 『,』指定分隔符。如果不指定引數,則會嘗試使用逗號分隔。分隔符長於乙個字元並且不是『\s+』,將使用python的語法分析器。並且忽略資料中的逗號。

3. names1880.groupby('***').births.sum()

當想要只看某一(些)列的時候,可以通過索引來實現,在 groupby 方法呼叫前後均可(這是一種語法糖)。

在分組上應用size()、sum()、count()等統計函式,能分別統計分組數量、不同列的分組和、不同列的分組數量。

對於分組的某一列或者多個列,應用agg(func)可以對分組後的資料應用func函式。例如:用group1['data1'].agg('mean')對分組後的』data1』列求均值。當然也可以推廣到同時作用於多個列和使用多個函式上。

4.  names = pd.concat(pieces, ignore_index=true)

concat預設是按行將多個dataframe組合到一起。

必須指定ignore_index=true,因為我們不希望保留read_csv所返回的原始行號

5.  total_births=names.pivot_table('births',index='year',columns='***',aggfunc=sum)

pivot_table()方法可以產生類似於excel資料透視表的結果,相當的直觀。

其中引數index指定「行」鍵,columns指定「列」鍵。

aggfunc引數表示聚合函式或函式列表,預設值為mean(求平均),可以是任何對groupby有效的函式

margins引數表示新增行/列小計和總計,預設false。

6.  np.allclose(names.groupby(['year','***']).prop.sum(),1)

在執行這樣的分組處理時,一般都應該做一些有效性檢查,比如驗證所有分組的prop的總和是否為1。由於這是乙個浮點數型別,所以我們用np.allclose來檢查這個分總計值是否足夠近似於(可能不會精確等於)1

7.  pandas.dataframe.sort_values()

幾個引數:by 根據此引數來決定**的軸 ascending。true表示公升序,false表示降序,預設true。

8.  pandas.dataframe.cumsum()

返回請求軸的累計和

9.  pandas.series.searchsorted()

prop_cumsum =df.sort_values(by='prop',ascending=false).prop.cumsum()

prop_cumsum.searchsorted(0.5)

先將**根據prop列進行排序,然後用searchsorted方法查詢在**插入0.5這個數值。返回的結果型別是乙個narray,因為是從0開始的,之後用的時候記得+1。

10. 關於stack和unstack

diversity = diversity.unstack('***')

二重multiindex的series可以unstack()成dataframe

dataframe可以stack成擁有二重multiindex的series

(對於multindex的大概就是索引值中存在多元的list,索引本身建立之後不可變)

11. 關於dataframe選取資料方法loc,iloc,ix

df = pd.dataframe(np.random.randn(6,4),columns= list(『abcd』))

對於這樣乙個data frame來說,建立的時候規定了列名abc d,行名是預設的數字

.loc可以獲取行,如果想要選擇行中相應的列,需要知道對應的列名

.iloc也是獲取行,但是如果想要選擇行中相應的列,只需要知道列的序號(所以.iloc可以對列進行切片)

.ix 的功能就更強大了,它允許我們混合使用下標和名稱進行選取。 可以說它涵蓋了前面所有的用法。基本上把前面的都換成df.ix都能成功,但是有一點,就是df.ix [ [ ..1.. ], [..2..] ],  1框內必須統一,必須同時是下標或者名稱,2框也一樣。

利用python進行資料分析

目錄 10 minutes to pandas 翻譯 pandas中loc iloc ix的區別 pandas dropna函式 pandas中dataframe的stack unstack 和pivot 方法的對比 pandas中關於set index和reset index的用法 python匿...

利用python進行資料分析

利用python進行資料分析,需要了解一些基本的方法,比如掌握回歸分析的方法,通過線性回歸和邏輯回歸,其實你就可以對大多數的資料進行回歸分析,並得出相對精確地結論。這部分需要掌握的知識點如下 回歸分析 線性回歸 邏輯回歸 基本的分類演算法 決策樹 隨機森林 樸素貝葉斯 基本的聚類演算法 k mean...

《利用Python進行資料分析》筆記

之前的筆記一直記在我的印象筆記上,今天突然想到 不如直接記在部落格上,印象筆記只記錄生活上的事,這樣也分工明確一些。同時也能和大家分享,也許可以幫助到別人。由於這個學習筆記系列主要還是用於個人學習總結用,所以會比較凌亂,望大家理解!2017 9 23 p151 pd.dropna thresh 其中...