码迷,mamicode.com
首页 > 编程语言 > 详细

Python 数据分析—第九章 数据聚合与分组运算

时间:2018-03-29 19:05:47      阅读:258      评论:0      收藏:0      [点我收藏+]

标签:ram   column   random   dex   png   loading   col   inf   first   

打算从后往前来做笔记

第九章 数据聚合与分组运算

分组

#生成数据,五行四列
df = pd.DataFrame({key1:[a,a,b,b,a],
                  key2:[one,two,one,two,one],
                  data1:np.random.randn(5),
                  data2:np.random.randn(5)})
df

技术分享图片

#可以按照key1分组计算data1的平均值
df.loc[:,data1].groupby(df.loc[:,key1]).mean()

 技术分享图片

#可以按照key1,key2分组计算data1的平均值
df.loc[:,data1].groupby([df.loc[:,key1],df.loc[:,key2]]).mean()

技术分享图片

#两个键分组后可以unstack
temp = df.loc[:,data1].groupby([df.loc[:,key1],df.loc[:,key2]]).mean()
temp.unstack()

技术分享图片

注意:这里分组忽略null值,另外groupby()括号里可以选择axis = 0 或者1,表示按照航或者列来分组,同时如果df[‘列名‘].groupby()这样就只有这列会group,不然就是全部数据groupby,groupby()里面还可以传入函数比如len

 

聚合



df.groupby(key1).std() #还有count(),sum(),mean(),median()std,var,min,max,prod,first,last

#可以自定义函数
df.groupby(‘key1‘).agg([lambda x : x.max()-x.min(),np.mean,np.std])

 技术分享图片

#可以自定义函数
df.groupby(key1).agg([(自定义函数,lambda x : x.max()-x.min()),(均值,np.mean),(标准差,np.std)])

技术分享图片

#不同列做不同的动作,一个取最大值,一个取最小值
df.groupby(‘key1‘).agg({‘data1‘:np.max,‘data2‘:np.min})
df.groupby(‘key1‘).agg({‘data1‘:[np.max,np.size,np.mean],‘data2‘:np.min})  #这个超级吊

 技术分享图片技术分享图片

 

透视表和交叉表

tips.pivot_table(index=sex,columns=time,values=total_bill,aggfunc=np.sum,margins=True,fill_value=0)

对照这个东西看就都懂了,index代表了行,columns代表了列,values代表值,然后aggfunc代表取sum,还是mean,margins代表是否显示汇总,fill_value填充缺失值

技术分享图片

 

 

 

 

 

 

 

 

 

 

 

 

 

 

技术分享图片

Python 数据分析—第九章 数据聚合与分组运算

标签:ram   column   random   dex   png   loading   col   inf   first   

原文地址:https://www.cnblogs.com/slowlyslowly/p/8671070.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!