pandas交叉表和透視表及案例分析


一.交叉表:

作用:

交叉表是一種用於計算分組頻率的特殊透視圖,對數據進行匯總

考察預測數據和正式數據的對比情況,一個作為行,一個作為列

案例:

醫院預測病人病情:

真實病情如下數組(B:有病,M:沒病)

true = np.load("./cancer_true.npy")     #load()加載數據
true

算法預測病情數據如下:

predict = np.load("./cancer_predict.npy")
predict

現在要知道預測結果有多少預測正確,多少預測失敗

使用交叉表:

#使用交叉表,調用crosstab()函數。

參數如下:

['index', 'columns', 'values=None', 'rownames=None', 'colnames=None', 'aggfunc=None', 'margins=False', "margins_name='All'", 'dropna=True', 'normalize=False'],

預測結果:

pd.crosstab(index = true,columns=predict,rownames = ["確診"],colnames = ["預測"],margins=True)

可以看到預測正確的結果有36+17個,2個漏診,2個誤診

 

二.透視表:

它根據一個或多個鍵對數據進行聚合,並根據行和列上的分組鍵將數據分配到各個矩形區域中

分組查看數據,和數據庫中的group by是相同的功能。

 

案例:

分析人的使用左右手跟情商(eq)、智商(iq)的關系

 添加數據(偽造)

df =DataFrame({"HAND":np.random.randint(0,10,size = 200),"sex":np.random.randint(0,2,size = 200),"iq":np.random.randint(0,100,size =200),"eq":np.random.randint(0,100,size = 200)})
df

(部分數據)

 

 對數據進行處理:

使用透視表:

調用pivot_table()函數

參數有:

['data', 'values=None', 'index=None', 'columns=None', "aggfunc='mean'", 'fill_value=None',
'margins=False', 'dropna=True', "margins_name='All'"],

pd.set_option("display.float_format",lambda x:"%0.1f"%(x))

pd.pivot_table(data = df,values = ["iq","eq"],index = ["HAND","sex"],aggfunc= "mean",margins = True)

 

通過表分析字段之間的關系。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM