pandas分组聚合详解分组聚合详解
主要介绍了pandas分组聚合详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考
学习价值,需要的朋友们下面随着小编来一起学习学习吧
一一 前言前言
pandas学到分组迭代,那么基础的pandas系列就学的差不多了,自我感觉不错,知识追寻者用pandas处理过一些数据,蛮好
用的;
知识追寻者(Inheriting the spirit of open source, Spreading technology knowledge;)
二二 分组分组
2.1 数据准备数据准备
# -*- coding: utf-8 -*-
import pandas as pd
import numpy as np
frame = pd.DataFrame({
'user' : ['zszxz','craler','rose','zszxz','rose'],
'hobby' : ['reading','running','hiking','reading','hiking'],
'price' : np.random.randn(5),
'number' : np.random.randn(5)
})
print(frame)
输出
user hobby price number
0 zszxz reading 0.275752 -0.075841
1 craler running -1.410682 0.259869
2 rose hiking -0.353269 -0.392659
3 zszxz reading 1.484604 0.659274
4 rose hiking -1.348315 2.492047
2.2 分组求均值分组求均值
提取DataFrame中price 列,根据hobby列进行分组,最后对分好组的数据进行处理求均值;
# 是个生成器
group = frame['price'].groupby(frame['hobby'])
# 求均值
print(group.mean())
输出
hobby
hiking -0.850792
reading 0.880178
running -1.410682
Name: price, dtype: float64
Tip: 可以理解为 根据爱好分组,查询价格;查询的列必须是数字,否则求均值时会报异常
如果是根据多列分组则在groupby后面使用列表指定,并且调用求均值函数;输出的值将是分组列,均值结果;
group = frame['price'].groupby([frame['hobby'],frame['user']])
print(group.mean())
输出
hobby user
hiking rose 0.063972
reading zszxz 0.393164
running craler -1.395186
Name: price, dtype: float64
如果对整个DataFrame进行分组,则不再需要提取指定的列;
group = frame.groupby(frame['hobby'])
评论10