import numpy as np import pandas as pd ''' 聚合函数: count 分组中非NA值的数量 sum 非NA值的和 mean 非NA值的平均数 median 非NA值的算术中位数 std、var无偏(分母为n-1)标准差和方差 min、max 非NA值的最小值和最大值 prod 非NA值的积 first、last 第一个和最后一个非NA值 ''' data=pd.DataFrame({'level':['a','b','c','b','a'], 'num':[3,5,6,8,9]}) combine=data['num'].groupby(data['level']) print(combine.sum()) #分组求平均值 print('分组求平均值:',combine.mean()) #返回每个分组的频率 print('返回每个分组的频率:',combine.size()) #根据数据的所属类型对进行分组 combine_1=data.groupby(data.dtypes,axis=1) print('数据的所属类型对进行分组:',dict(list(combine_1)))#这里combine_1的是Serise数据结构,需要转换线转换为列表,再转成字典的形式才能打印 #数据聚合 new_data=data.groupby('level') print('数据聚合求平均值',new_data.agg('mean')) #支持多个聚合函数一起使用 data_2=pd.DataFrame({'level':['a','b','c','b','a'], 'num':[3,5,6,8,9], 'num1':[2,5,9,6,8]}) new_data_2=data_2.groupby('level') print('多聚合函数混合使用:',new_data_2.agg({'num':'mean','num1':'sum'})) #transform的使用 np_data=np.random.rand(5,5) print("transform的使用:",np_data) ''' np.random.randn(d0,d1,d2……dn) 1)当函数括号内没有参数时,则返回一个浮点数; 2)当函数括号内有一个参数时,则返回秩为1的数组,不能表示向量和矩阵; 3)当函数括号内有两个及以上参数时,则返回对应维度的数组,能表示向量或矩阵; 4)np.random.standard_normal()函数与np.random.randn()类似,但是np.random.standard_normal() 的输入参数为元组(tuple). 5)np.random.randn()的输入通常为整数,但是如果为浮点数,则会自动直接截断转换为整数。 ''' #实现数据透视的功能 data_3=pd.DataFrame({'level':['a','b','c','b','a'], 'key':['one','two','one','two','one'], 'num':[3,5,6,8,9], 'num1':[2,5,9,6,8]}) print(data_3) #以key为索引默认求平均值,columns行转列 print(data_3.pivot_table(index='key',columns='level')) #计算分组频率,即统计相同的行,相同的列存在的个数 print(pd.crosstab(data_3.key,data_3.level,margins=True))