于数据的分组和分组运算主要是指groupby函数的应用,具体函数的规则如下:
df[](指输出数据的结果属性名称).groupby([df[属性],df[属性])(指分类的属性,数据的限定定语,可以有多个).mean()(对于数据的计算方式——函数名称)
举例如下:
print(df["评分"].groupby([df["地区"],df["类型"]]).mean())
#上面语句的功能是输出表格所有数据中不同地区不同类型的评分数据平均值
二、单类分组
A.groupby("性别")
首先,我们有一个变量A,数据类型是DataFrame
想要按照【性别】进行分组
得到的结果是一个Groupby对象,还没有进行任何的运算。
describe()
描述组内数据的基本统计量
A.groupby("性别").describe().unstack()
* 只有数字类型的列数据才会计算统计
* 示例里面数字类型的数据有两列 【班级】和【身高】
但是,我们并不需要统计班级的均值等信息,只需要【身高】,所以做一下小的改动:
A.groupby("性别")["身高"].describe().unstack()
unstack()
索引重排
上面的例子里面用到了一个小的技巧,让运算结果更便于对比查看,感兴趣的同学可以自行去除unstack,比较一下显示的效果
三、多类分组
A.groupby( ["班级","性别"])
单独用groupby,我们得到的还是一个 Groupby 对象。
mean()
组内均值计算
DataFrame的很多函数可以直接运用到Groupby对象上。
我们还可以一次运用多个函数计算
A.groupby( ["班级","性别"]).agg([np.sum, np.mean, np.std]) # 一次计算了三个
agg()
分组多个运算
对分组进行过滤,保留满足()条件的分组
以上就是 groupby 最经常用到的功能了。
用 first(),tail()截取每组前后几个数据
用 apply()对每组进行(自定义)函数运算
用 filter()选取满足特定条件的分组
暂无数据