pandas之groupby分组与pivot_table透视表
zhuanzi: https://blog.csdn.net/qq_33689414/article/details/78973267
pandas之groupby分组与pivot_table透视表
在使用pandas进行数据分析时,避免不了使用groupby来对数据进行分组运算。
groupby的参数
groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, **kwargs)
by:mapping, function, str, or iterable。
用于确定groupby的组。如果by是一个函数,那么会调用对象索引的每个值。如果传递了一个dict或Series,则将使用Series或dict的值来确定组。一个str或者一个strs列表可以通过自己的列传递给group。
axis:轴,int值,默认为0
level:如果axis是一个MultiIndex(分层),则按特定的级别分组。int值,默认为None
as_index:对于聚合输出,返回带有组标签的对象作为索引。
as_index=False实际上是“SQL风格”分组输出,boolean值,默认为True。sort:排序。关闭此功能以获得更好的性能。boolean值,默认True。
group_keys:当调用apply时,添加group key来索引来识别片断。boolean值,默认True。
squeeze:尽可能减少返回类型的维度,否则返回一致的类型。boolean值,默认False。
groupby的聚合函数
groupby的聚合函数有:
| 函数名 | 说明 |
|---|---|
| count | 分组中非NA值的数量 |
| sum | 非NA值的和 |
| mean | 非NA值的平均值 |
| median | 非NA值的算术中位数 |
| std、var | 无偏(分母为n-1)标准差和方差 |
| min、max | 非NA值的最小值和最大值 |
| prod | 非NA值的积 |
| first、last | 第一个或最后一个非NA值 |
groupby示例
groupby的测试数据:
https://github.com/zhang3550545/resource/blob/master/raw/groupby_test.csv
- 读取groupby_test.csv文件中的数据,输处文件内容。
if __name__ == '__main__':
data = pd.read_csv('groupby_test.csv')
print(data[:10])

- groupby函数,对区域字段进行分组,对总价求平均值。
results = data.groupby(['区域'])['总价']
print(results) # 输出:<pandas.core.groupby.SeriesGroupBy object at 0x0000023D2AA02EF0>
print(results.mean())

- groupby函数,对区域字段进行分组,对面积求和。
results = data.groupby(['区域'])['面积'].sum()
print(results)

- groupby函数,对区域字段进行分组,对区域计算count。
results = data.groupby(data['区域'], sort=False)['区域'].count()
print(results)

- groupby函数,对区域字段进行分组,求总价,单价,面积的平均值。
results = data.groupby(['区域'])['总价', '单价', '面积'].mean()
print(results)

- groupby函数,对区域,版块2个字段进行分组,求单价的平均值。
results = data.groupby(['区域', '版块'])['单价'].mean()
print(results)

pivot_table透视表
使用pivot_table透视表实现groupby的功能
results = pd.pivot_table(data, index=['区域', '版块'], values=['单价'])
print(results)

pandas之groupby分组与pivot_table透视表的更多相关文章
- pandas之groupby分组与pivot_table透视
一.groupby 类似excel的数据透视表,一般是按照行进行分组,使用方法如下. df.groupby(by=None, axis=0, level=None, as_index=True, so ...
- pandas获取groupby分组里最大值所在的行,获取第一个等操作
pandas获取groupby分组里最大值所在的行 10/May 2016 python pandas pandas获取groupby分组里最大值所在的行 如下面这个DataFrame,按照Mt分组, ...
- pandas实现excel中的数据透视表和Vlookup函数功能
在孩子王实习中做的一个小工作,方便整理数据. 目前这几行代码是实现了一个数据透视表和匹配的功能,但是将做好的结果写入了不同的excel中, 如何实现将结果连续保存到同一个Excel的同一个工作表中?还 ...
- pandas-10 pd.pivot_table()透视表功能
pandas-10 pd.pivot_table()透视表功能 和excel一样,pandas也有一个透视表的功能,具体demo如下: import numpy as np import pandas ...
- Pandas之groupby分组
释义 groupby用来分组,调用groupby 之后返回pandas.core.groupby.generic.DataFrameGroupBy,其实就是由一个个格式为(key, 分组后的dataf ...
- 04. Pandas 3| 数值计算与统计、合并连接去重分组透视表文件读取
1.数值计算和统计基础 常用数学.统计方法 数值计算和统计基础 基本参数:axis.skipna df.mean(axis=1,skipna=False) -->> axis=1是按行来 ...
- Pandas透视表(pivot_table)详解
介绍 也许大多数人都有在Excel中使用数据透视表的经历,其实Pandas也提供了一个类似的功能,名为pivot_table.虽然pivot_table非常有用,但是我发现为了格式化输出我所需要的内容 ...
- 小白学 Python 数据分析(12):Pandas (十一)数据透视表(pivot_table)
人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):P ...
- Python中pandas透视表pivot_table功能详解(非常简单易懂)
一文看懂pandas的透视表pivot_table 一.概述 1.1 什么是透视表? 透视表是一种可以对数据动态排布并且分类汇总的表格格式.或许大多数人都在Excel使用过数据透视表,也体会到它的强大 ...
随机推荐
- 基于Cocos2dx + box2d 实现的愤慨的小鸟Demo
1. Demo初始界面 2. 游戏界面 3. 精确碰撞检測 4. 下载 压缩文件文件夹 AngryBird source 愤慨的小鸟Demo源码,基于Cocos2dx C++,以及box2d技 ...
- SSH无密码验证可能出现的问题
雪影工作室版权所有,转载请注明[http://blog.csdn.net/lina791211] 一.安装和启动SSH协议 假设没有安装ssh和rsync,可以通过下面命令进行安装. sudo apt ...
- HDU 2512 一卡通大冒险(dp)
一卡通大冒险 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Subm ...
- 7-39 Math对象
7-39 Math对象 学习要点 掌握常用的数学计算方法 温馨提示:关于学习方法的建议 不要强求自己讲参考手册上所以的属性和方法都搞清楚,原因如下: 有些属性和方法非常生僻,很少用,甚至经过一段时间后 ...
- java中字节数组byte[]和字符(字符串)之间的转换
转自:http://blog.csdn.net/linlzk/article/details/6566124 Java与其他语言编写的程序进行tcp/ip socket通讯时,通讯内容一般都转换成by ...
- I.MX6 ifconfig: SIOCSIFHWADDR: Cannot assign requested address
/************************************************************************** * I.MX6 ifconfig: SIOCSI ...
- VS 一些用法设置
/************************************************************************ * VS 一些用法设置 * 说明: * 最近要用到C ...
- Tensorflow卷积接口总结
tf.nn.conv2d(input, filter, strides, padding, use_cudnn_on_gpu=None, name=None) 这个接口用了这么久,每次都有点迷惑,这里 ...
- 关于jenkins的安装及自动部署
1. 安装Jenkins 1.1 准备Linux服务器, 关闭防火墙禁止开机启动 systemctl stop firewalld.service #停止firewall systemctl disa ...
- bzoj 1089: [SCOI2003]严格n元树【dp+高精】
设f[i]为深度为i的n元树数目,s为f的前缀和 s[i]=s[i-1]^n+1,就是增加一个根,然后在下面挂n个子树,每个子树都有s[i-1]种 写个高精就行了,好久没写WA了好几次-- #incl ...