Python数据分析(三)—— Pandas数据统计
本文主要介绍Pandas中的数据统计方法,包括value_counts,groupby,pivot_table。
·
Pandas数据统计
本文主要介绍Pandas中的数据统计方法,部分使用的数据集为MovieLen 1M版本(m1-1m.zip)数据集。
import numpy as np
import pandas as pd
#加载数据集
fpath = r'datasets//'
usercol = ['uid','sex','age','occupation','zip']
ratcol = ['uid','mid','rating','timestamp']
movcol = ['mid','title','genres']
users = pd.read_table(fpath+'users.dat',sep='::',header=None, names=usercol,engine='python')
ratings = pd.read_table(fpath+'ratings.dat',sep='::',header=None, names=ratcol,engine='python')
movies = pd.read_table(fpath+'movies.dat',sep='::',header=None,names=movcol,engine='python')
data = pd.merge(pd.merge(users,ratings),movies)
1 简单统计
unique计算Series中的唯一值数组,按发现的顺序返回。value_counts返回一个Series,索引为唯一值,值为频率,按计数值降序排列。
data.age.unique()

data.age.value_counts()

2 groupby
分组运算的过程被描述为split-apply-combine:数据根据提供的一个或多个键被拆分(split)为多组,拆分操作在对象的特定轴上执行的;然后将一个函数应用(apply)到各个分组并产生一个新值;最后所有函数的执行结果会被合并(combine)到最终的结果对象中。

import pandas as pd
import numpy as np
df = pd.DataFrame({'col1':['a','a','b','b','a'],
'col2':['one','two','one','two','one'],
'data1': np.random.randn(5),
'data2': np.random.randn(5)})
df

groupby方法形成一个Groupby对象,没有进行任何实际计算,只是含有一些有关分组键的中间数据,即该对象已包含接下来对各分组执行运算所需的一切信息。
grouped = df.groupby(['col1','col2'])
grouped.mean()

3 pivot table
透视表(pivot table)根据一个或多个键对数据进行聚合,并根据行和列上的分组键将数据分配到各个矩形区域中。pivot_table()函数除能为groupby提供便利外,还可以添加分项小计(margins)。
pivot_table(values,index,columns,aggfunc,fill_value)
主要参数如下:
values:数据透视表中的值index:数据透视表中的行columns:数据透视表中的列aggfunc:统计函数(应用到values上)fill_value:替换NA值
df.pivot_table(index='col1',aggfunc='mean')
#df.groupby(['col1']).mean()

df.pivot_table('data1',index='col1',aggfunc='mean')
#df.groupby(['col1']).data1.mean()

df.pivot_table(['data1','data2'],index='col2',columns='col1',aggfunc='mean')
#df.groupby(['col1','col2']).mean().unstack()

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)