透视表是各种电子表格程序和其他数据分析软件中一种常见的数据汇总工具。它根据一个或多个键对数据进行聚合,并根据行和列上的分组键将数据分配到各个矩形区域中。
import numpy as np
import pandas as pd
df = DataFrame({'male':['男','女','男','女','男','女','男','女','女','男','女','男','女','女','女','男','女','女'],
'hand':['right','left','left','right','right','left','left','right','right','right','left','right','left','left','right','right','left','left'],
'height':np.random.randint(160,180,size = 18),'weight':np.random.randint(50,80,size = 18)})
df
pd.pivot_table(df,columns=['male'])
pd.pivot_table(df,columns=['hand'],aggfunc='sum')
pd.pivot_table(df,index=['male'])
pd.pivot_table(df,index=['hand'])
# 透视表:根据特定条件进行分组计算,查找数据,进行计算
pd.pivot_table(df,index=['hand'],columns=['male'],aggfunc='min')
交叉表是一种用于计算分组频率的特殊透视图,对数据进行汇总
nd = np.random.randint(0,10000,size = 1000)
np.save('./data.npy',nd)
np.load('./data.npy')
t = np.load('./cancer_true.npy')
p = np.load('./cancer_predict.npy')
display(t,p)
①法1
# index ----行
# columns ----列
pd.crosstab(index = t,columns=p,colnames=['Predict'],rownames=['True'],margins=True)
②法2
df = DataFrame({'True':t,'Predict':p})
df
pd.crosstab(df['True'],df['Predict'])