Python之groupby

# -*- coding: utf-8 -*-
"""
Created on Sat Jun 30 10:09:47 2018
测试分组groupby
@author: zhen
"""
from pandas import DataFrame
"""
data = [
  [1,2,2,1]
  [2,2,2,2]
  [1,3,3,2]
  [2,2,2,4]
]
"""
# 创建测试数据,将字典转换成为数据框
df = DataFrame({‘a‘:[1,2,2,1],‘b‘:[2,2,2,2],‘c‘:[1,3,3,2],‘d‘:[2,2,1,4]})

show2 = df.groupby([‘a‘,‘b‘,‘c‘])[‘c‘].agg([‘max‘,‘min‘,‘mean‘])
show3 = df.groupby([‘b‘,‘a‘,‘c‘])[‘c‘].agg([‘max‘,‘min‘,‘mean‘])

print(‘=====================================‘)
print(df)
print(‘=====================================‘)
print(show2)
print(‘=====================================‘)
print(show3)
print(‘=====================================‘)

结果:

分析:

根据结果分析可知:Python中的groupby与sql类似,分组的列的先后顺序影响结果的层级关系,但不影响结果!

原文地址:https://www.cnblogs.com/yszd/p/9246598.html

时间: 2024-10-18 03:02:57

Python之groupby的相关文章

Python实现groupBy函数。grpby = groupBy(lambda x: x%2 is 1),grpby([1, 2, 3])的结果为{True: [1, 3], False: [2]}

def groupBy(fn): def go(lst): m = {} for v in lst: m[fn(v)].append(v) if m.get(fn(v)) else m.update({fn(v): [v]})#如果存在dict,则append到相应的key中,如果不存在即为none,则update一个新的键对 return m return go grpby = groupBy(lambda x: x%2 is 1) grpby([1, 2, 3])

Python Pandas GroupBy

global root # 合并Excel表格 filearray = [] filelocation = glob.glob(root + "\*.xls") for filename in filelocation: filearray.append(filename) res = pd.read_excel(filearray[0]) for i in range(1, len(filearray)): A = pd.read_excel(filearray[i]) res =

python数据分组运算

摘要: pandas 的 GroupBy 功能可以方便地对数据进行分组.应用函数.转换和聚合等操作.   # 原作者:lionets GroupBy 分组运算有时也被称为 "split-apply-combine" 操作.其中的 "split" 便是借由 obj.groupby() 方法来实现的. .groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, sque

python groupby

groupby() 将key函数作用于原循环器的各个元素.根据key函数结果,将拥有相同函数结果的元素分到一个新的循环器.每个新的循环器以函数返回结果为标签. 这就好像一群人的身高作为循环器.我们可以使 用这样一个key函数: 如果身高大于180,返回"tall":如果身高底于160,返回"short";中间的返回"middle".最终,所有身高将分为三个循环器, 即"tall", "short", &qu

Python数据聚合和分组运算(1)-GroupBy Mechanics

前言 Python的pandas包提供的数据聚合与分组运算功能很强大,也很灵活.<Python for Data Analysis>这本书第9章详细的介绍了这方面的用法,但是有些细节不常用就容易忘记,遂打算把书中这部分内容总结在博客里,以便复习查看.根据书中的章节,这部分知识包括以下四部分: 1.GroupBy Mechanics(groupby技术) 2.Data Aggregation(数据聚合) 3.Group-wise Operation and Transformation(分组级运

《笔记》python itertools的groupby分组数据处理

今天遇到这么一个需求,需要将这样的数据进行分组处理: [(1, 2), (2, 3), (1, 4), (5, 5), (3, 4), (2, 6)] 处理之后我可能需要得到这样的结果: [(1, (2, 4)), (2, (3, 6)), (3, (4, )), (5, (5, ))] 找了一些办法,最后想到了以前用过的在itertools里面的包groupby方法,因为比较少使用所以总是忘.它可以轻松的实现分组功能,由于是itertools包里面的,所以它的返回是一个迭代器.这一点要注意下面

python整合连续数字的练习,包含itertools\groupby用法

#汉字数字转阿拉伯数字 1 class ConvertNum: 2 def __init__(self,cnNum): 3 self.dict = {u'零':0,u'一':1,u'二':2,u'三':3,u'四':4,u'五':5,u'六':6,u'七':7,u'八':8,u'九':9,u'十':10,u'百':100,u'千':1000,u'万':10000} 4 self.cnNum = cnNum 5 6 def convert(self): 7 count = 0 8 result =

python处理数据的风骚操作[pandas 之 groupby&amp;agg]

https://segmentfault.com/a/1190000012394176 介绍 每隔一段时间我都会去学习.回顾一下python中的新函数.新操作.这对于你后面的工作是有一定好处的.本文重点介绍了pandas中groupby.Grouper和agg函数的使用.这2个函数作用类似,都是对数据集中的一类属性进行聚合操作,比如统计一个用户在每个月内的全部花销,统计某个属性的最大.最小.累和.平均等数值. 其中,agg是pandas 0.20新引入的功能 groupby && Grou

Python中的分组函数(groupby、itertools)

from operator import itemgetter #itemgetter用来去dict中的key,省去了使用lambda函数 from itertools import groupby #itertool还包含有其他很多函数,比如将多个list联合起来.. d1={'name':'zhangsan','age':20,'country':'China'} d2={'name':'wangwu','age':19,'country':'USA'} d3={'name':'lisi',