一.交叉表:
作用:
交叉表是一種用於計算分組頻率的特殊透視圖,對數據進行匯總
考察預測數據和正式數據的對比情況,一個作為行,一個作為列
案例:
醫院預測病人病情:
真實病情如下數組(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)
通過表分析字段之間的關系。