文档章节

Pandas 分组groupby

C
 Claroja
发布于 2017/05/08 23:22
字数 276
阅读 10
收藏 0

创建测试数据框

import pandas as pd
df = pd.DataFrame({'a': [1, 2, 3, 4], 'b': [5, 6, 7,8],'c': ['x', 'y', 'x','y'],'d':["one","two","three","two"]})
print(df)
   a  b  c    d
0  1  5  x  one
1  2  6  y  two
2  3  7  x  three
3  4  8  y  two

计算以c列分组的,每组的平均值,非数值列将会被自动忽略

print(df.groupby(df["c"]).mean())
   a  b
c      
x  2  6
y  3  7

多列分组

gb=df.groupby([df["c"],df["d"]])
print(gb)
<pandas.core.groupby.DataFrameGroupBy object at 0x0000000004A1DEB8>#groupby存储的是分组信息,而不是分组的数据
for i,j in gb:
 print(i)
 print('-----------')
 print(j)
('x', 'one') -----------
 a b c d
0  1  5  x  one
('x', 'three') -----------
 a b c d
2  3  7  x  three
('y', 'two') -----------
 a b c d
1  2  6  y  two
3  4  8  y  two

聚合函数agg()

print(df.groupby(df["c"]).agg(['min','max']))
    a       b        d       
  min max min max  min    max
c                            
x   1   3   5   7  one  three
y   2   4   6   8  two    two

将结果返回到数据框transform

print(df.groupby('c').transform('mean'))
   a  b
0  2  6
1  3  7
2  2  6
3  3  7

数据透视表

table =pd.pivot_table(df, values='a', index=['c'],columns=['d'], aggfunc=np.sum)
d  one  three  two
c                 
x  1.0    3.0  NaN
y  NaN    NaN  6.0

© 著作权归作者所有

共有 人打赏支持
C
粉丝 0
博文 128
码字总数 44892
作品 0
南京
Pandas系列6-DataFrame的分组与聚合

在对数据进行处理的时候,分组与聚合是非常常用的操作。在Pandas中此类操作主要是通过groupby函数来完成的。 先看一个实际的例子: 通过groupby函数生成一个groupby对象,如下: 整个分组统计...

geekpy
07/23
0
0
通过partial构造Pandas分组规则

Pandas通常可以用groupby来对某一列进行分组,例如: df = pd.read_csv("sugars.csv",header=None)df.columns=["time","pop"] 分组groupby(字段名)则直接对其进行分组 df.groupby("pop").co...

Kanonpy
2015/12/01
120
0
数据聚合与分组运算——GroupBy

pandas提供了一个灵活高效的groupby功能,它使你能以一种自然的方式对数据集进行切片、切块、摘要等操作。 根据一个或多个键(可以是函数、数组或DataFrame列名)拆分pandas对象。 计算分组摘...

Betty__
2016/10/03
92
0
Pandas 0.20.1 发布,Python 数据分析工具包

Pandas 是一个以 BSD 许可开源的库,为 Python 编程语言提供了高性能、易于使用的数据结构和数据分析工具。 Pandas 0.20.1 是自 0.19.2 以来的又一个主要版本,包括许多 API 更改、弃用,新特...

王练
2017/05/09
917
0
pandas groupby 分组操作

最一般化的groupby 方法是apply. 新生成一列 根据分组选出最高的5个tip_pct值 对smoker分组并应用该函数 本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/bonelee/p/759667...

桃子红了呐
2017/11/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

微信小程序开发系列六:微信框架API的调用

微信小程序开发系列教程 微信小程序开发系列一:微信小程序的申请和开发环境的搭建 微信小程序开发系列二:微信小程序的视图设计 微信小程序开发系列三:微信小程序的调试方法 微信小程序开发...

JerryWang_SAP
34分钟前
2
0
5 个用 Python 编写 web 爬虫的方法

大家在读爬虫系列的帖子时常常问我怎样写出不阻塞的爬虫,这很难,但可行。通过实现一些小策略可以让你的网页爬虫活得更久。那么今天我就将和大家讨论这方面的话题。 我刚整理了一套2018最新...

糖宝lsh
35分钟前
6
0
docker安装redis、mongodb、mysql等

一、启动docker服务,设置镜像: systemctl start dockervi /etc/docker/daemon.json{ "registry-mirrors": ["https://registry.docker-cn.com"]} 二、下拉镜像: 在镜像中心h...

狼王黄师傅
今天
5
0
deepin系统使用deepin-wine安装exe程序

deepin自带原生deepin-wine使用命令如下: deepin-wine QQBrowser.exedeepin-wine QQMusicSetup.exe 默认安装的快捷方式位置: /root/.wine/drive_c/'Program Files'/Tencent/QQBrowser/......

临江仙卜算子
今天
4
0
快速get到学习Linux操作系统的点

快速get到学习Linux操作系统的点 Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。Linux能够运行主要的UNIX工具软件...

linuxCool
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部