讀書筆記2 利用Python進行資料分

2021-07-30 16:21:12 字數 3025 閱讀 4611

series:索引index和資料values。

可以看成乙個定長的有序字典。

通過字典建立series:df=series(s1)s1為字典。

傳入字典,結果series中的索引就是原字典的鍵(有序排列)

例如s=[『a』,『b』]

df1=series(df,index=s)

nan:非數字,not a number,在pandas中表示缺失或na值。

pandas中的isnull和notnull函式用於檢測缺失資料。pd.isnull()。

series最重要的乙個功能:它在算術運算子中自動對齊不同索引的資料。

series有name屬性。例如:df.name=『hou』或df.index.name=『state』。

series的索引可以通過賦值直接修改。

del frame1[『a』]刪除列。

frame1[『c』]=frame.state==『oh'

另一種常見的資料形式:巢狀字典

它傳給dataframe時,解釋為:外層字典的鍵key作為列,內層鍵則作為行索引。

index物件是不可修改的。

重新索引reindex 例如:df.reindex([『a』,『b』,『c』],fill_value=0)當前索引值不存在,為nan或插值處理(上述fill_value)

reindex的(插值)method選項:

ffill或pad前向填充(或搬運)值

bfill或backfill後向填充(或搬運)值

丟棄指定軸上的項:drop;對於dataframe,可以刪除任意軸上的索引值。

算數運算和資料對齊:

在算術方法中填充值:使用df1的add方法,傳入df2以及乙個fill_value引數df1.add(df2,fill_value=0)。或重新用reindex建索引。

算術方法:add 

加法sub 

減法 div 

除法 mul乘法

函式應用和對映:

numpy的ufuncs(元素級陣列方法)也用於操作pandas物件:np.abs(df)。

排序和排名:

對資料集排序:內建函式sorting

對行或列索引進行排序(按字典順序),可用sort_index,返回已排序的新物件。預設是公升序排序。

引數:by=『』。多列:by=[『a『,』b』]

若要按值對series進行排序,可使用order方法。排序時候,任何缺失值nan預設都會放到series末尾。

排名(ranking):有點沒看懂。

索引是否是唯一:用is_unique函式

在描述統計中,na值會自動被排除,除非整個切片都是na,通過skipna選項可禁用該功能。

axis約簡的軸,dataframe的行用0,列為1。

skipna:排除缺失值,預設值為true。

level:如果軸是層次化索引(multiindex),則根據level分組約簡。

間接統計:idxmin和idxmax返回的是間接統計(即達到最小值和最大值的索引。)

argmin和argmax獲得到最小值和最大值的索引位置(整數)。

累計值:df.cumsum()

匯**計:df.describe()

mad根據平均值計算平均絕對離差。

var樣本值的方差,std是標準差。

相關係數和協方差:

pct_change()百分數變化

series的corr方法用於計算兩個series中重疊的,非na的,按索引對齊的值的相關係數。cov用於計算協方差。可返回dataframe的矩陣形式。

利用dataframe的corrwith方法,你可以計算其列或行跟另乙個series或

dataframe之間的相關係數。

傳入乙個series將返回乙個相關係數值series。(針對各列進行計算)

傳入dataframe也是按列名配對的相關係數,axis=1是按行進行計算。

唯一值、值計數以及成員資格:

一維的series的第乙個函式是unique,可以得到series中的唯一值陣列。返回的唯一值是未排序的,如果需要,可對結果再次進行排序(uniques.sort())。

value_counts用於計算乙個series中各值出現的頻率。引數:sort=false是降序排列。

isin用於判斷向量化集合的成員資格,可用於series或者dataframe列中的資料的子集。

內建的none值也會被當做na處理。

na處理方法:

濾除缺失資料:

series:

dropna返回乙個僅含非空資料和索引值的。

或布林型索引:df[df.notnull()]

dataframe:

dropna預設是丟棄所有缺失值的行。

傳入how=『all』將只丟棄全為na的那些行。

要用這種方式丟棄列,只需傳入axis=1即可。

涉及時間序列數df.dropna(thresh=3)

填充缺失資料:fillna將缺失值替換為常數。

例:df.fillna(1)缺失值全部替換為1。

若為字典時:df.fillna({1:2,3:1})。

fillna缺省會返回新物件。試一試:總是返回被填充物件的引用:_=df.fillna(0,inplace=true)

fillna傳入平均數或中位數:df.fillna(df.mean())。

層次化索引:兩個以上索引級別。包含:內層。

層次化索引在資料重塑和基於分組的操作很重要。dataframe中,df.index.names=[「a」,「b」]

df.columns.names一樣的。

重排分級順序:

swaplevel接受兩個級別編號或名稱。互換列名,但值不變。

sortlevel則根據單個級別中的值對資料進行排序(穩定的)。

如果層次化索引是按字典方式從外到內排序(則呼叫sortlevel(0)或sort_index()),資料選取操作的效能要好很多。

根據級別匯**計:

level選項:用於指定某條軸上求和的級別。

axis=1相當於pandas的groupby功能。

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

1.ndarry 2.通用函式 快速的元素級陣列函式 3.利用陣列進行資料處理 4.利用陣列的檔案輸入輸出 5.現行代數 6.隨機數生成 7.隨機漫步 1.合併資料集 pandas.merge pandas.concat pd.merge df1,df2,how inner 索引上的合併 軸向連線 ...

讀書筆記2

關於this指標 雖然this指標大家已經很熟悉了,但是我這裡討論的關於this指標的問題可能大家還沒注意過 為了說明這個關於this的歸屬問題,我自寫了一段再簡單不過的程式,雖簡單但具體 include class a void aa 我的問題是指標p1是指向b自身嗎?一看程式,大家就知道 不是,...

讀書筆記(2)

沉默的藝術 意識科學基礎理論 量子效應只是用於穩定某種內在自由度極大的基本粒子,然後再用基本粒子的內在屬性產生意識體驗。只能通過呈現乙個系統的 物理 屬性來描述乙個系統。只能通過變成內在屬性配對的其中乙個系統,以直接體驗的方式來獲得這些內在屬性的資訊。定義乙個包含所有系統的系統d,除該系統外無任何系...