首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

数据科学 IPython 笔记本 7.11 聚合和分组

我们将在“聚合,过滤,转换,应用”中,更全面地讨论这些内容,但在此之前,我们将介绍一些其他功能,它们可以与基本的GroupBy操作配合使用。...列索引 `GroupBy对象支持列索引,方式与DataFrame相同,并返回修改后的GroupBy``对象。...特别是GroupBy对象有aggregate(),filter(),transform()和apply()方法,在组合分组数据之前,它们有效实现各种实用操作。...函数 与映射类似,你可以传递任何接受索引值并输出分组的 Python 函数: display('df2', 'df2.groupby(str.lower).mean()') df2: data1 data2...a vowel 1.5 4.0 b consonant 2.5 3.5 c consonant 3.5 6.0 分组示例 作为一个例子,在几行 Python 代码中,我们可以将所有这些放在一起,并通过

3.7K20

groupby函数详解

[states,years]).mean() 分组键与原df无关,而是另外指定的任何长度适当的数组 分组键是数组,state和year均为数组 备注: grouped=df['data1'].groupby...,(b)若按某多列聚合,则新DataFrame将是多列之间维度的笛卡尔积,即:新DataFrame具有一个层次化索引(由唯一的键对组成),例如:“key1”列,有a和b两个维度,而“key2”有one和...(2)groupby(),根据分组键的不同,有以下4种聚合方法: 分组键为Series (a)使用原df的子列作为Series df.groupby([ df[‘key1’], df[‘key2’]...-0.533444 b -0.948798 (4)根据key1键对data1和data2列数据聚合 df.groupby('key1')[['data1','data2']].mean() #或者 df...two 1 b one 1 two 1 范例二:利用for循环,对分组进行迭代 #原始数据集与范例一相同 #对一列聚合,使用for循环进行分组迭代

3.8K11
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Pandas分组与聚合1.分组 (groupby)一、GroupBy对象:DataFrameGroupBy,SeriesGroupBy二、GroupBy对象支持迭代操作三、GroupBy对象可以转换成

    (['key2', 'key1']) print(grouped3.mean()) # unstack可以将多层索引的结果转换成单层的dataframe print(grouped3.mean().unstack...应用多个聚合函数 同时应用多个函数进行聚合操作,使用函数列表 示例代码: # 应用多个聚合函数 # 同时应用多个聚合函数 print(df_obj.groupby('key1').agg(['mean...对不同的列分别作用不同的聚合函数,使用dict 示例代码: # 每列作用不同的聚合函数 dict_mapping = {'data1':'mean', 'data2':'...1. merge 使用merge的外连接,比较复杂 示例代码: # 方法1,使用merge k1_sum_merge = pd.merge(df_obj, k1_sum, left_on='key1..., 如:grouped.transform(np.sum) 示例代码: # 方法2,使用transform k1_sum_tf = df_obj.groupby('key1').transform

    24.2K51

    《利用Python进行数据分析·第2版》第10章 数据聚合与分组运算10.1 GroupBy机制10.2 数据聚合10.3 apply:一般性的“拆分-应用-合并”10.4 透视表和交叉表10.5 总

    图10-1 分组聚合演示 分组键可以有多种形式,且类型不必相同: 列表或数组,其长度与待分组的轴一样。 表示DataFrame某个列名的值。...如图10-2所示,apply会将待处理的对象拆分成多个片段,然后对各片段调用传入的函数,最后尝试将各片段组合到一起。 ?...我曾在第8章中讲过,pandas有一些能根据指定面元或样本分位数将数据拆分成多块的工具(比如cut和qcut)。...一种方法是将数据分组,并使用apply和一个能够对各数据块调用fillna的函数即可。...在第14章,我们会看几个例子,对真实数据使用groupby。 在下一章,我们将关注时间序列数据。

    5K90

    pandas的类SQL操作

    for循环优化需要比较多的python基础知识,如果了解不透彻很难达到优化的效果,因此,笔者想用几个短篇先介绍一下python的常用包和方法,方便后续优化使用。...其二:代码中的“:”类似于between……and的功能,在loc和iloc中都可以使用,但仅支持序列号。 其三:loc函数中代表列的部分不能用序列号,iloc函数中行和列位置都可以用序列号。...多DataFrame的查询主要是解决SQL中join和concat的问题,python中主要使用merge和concat来实现对应的功能具体写法如下: Merge的用法:merge主要是用作按行拼接,类似于...由此,我们比较出concat(axis=1)与merge的区别,concat(axis=1)是直接将代码进行拼接,而merge是通过主键对数据进行关联。 上下拼接还有一个函数,即:append。...: np.median, 'd': np.mean})) 所能对接的函数有很多,效果不同: print(data1.groupby('a')['b'].plot(kind='kde',legend=True

    1.9K21

    超全的pandas数据分析常用函数总结:下篇

    整篇总结,在详尽且通俗易懂的基础上,我力求使其有很强的条理性和逻辑性,所以制作了思维导图,对于每一个值得深究的函数用法,我也会附上官方链接,方便大家继续深入学习。...how决定要执行的合并类型:left(使用左框架中的键)、right、inner(交集,默认)、outer(并集) data_new=pd.merge(data,data2,on='id',how='inner...用join合并 用下面这种方式会报错:列重叠,且没有指定后缀,因为上面的数据data和data2都有“id”列,所以需要给id列指明后缀。...数据筛选 7.1 使用与、或、非进行筛选 将满足origin是China且money小于35这两个条件的数据,返回其id、date、money、product、department、origin值。...8.4 以department属性进行分组汇总并计算money的合计与均值 data.groupby("department")['money'].agg([len, np.sum, np.mean])

    5K20

    超全的pandas数据分析常用函数总结:下篇

    整篇总结,在详尽且通俗易懂的基础上,我力求使其有很强的条理性和逻辑性,所以制作了思维导图,对于每一个值得深究的函数用法,我也会附上官方链接,方便大家继续深入学习。...how决定要执行的合并类型:left(使用左框架中的键)、right、inner(交集,默认)、outer(并集) data_new=pd.merge(data,data2,on='id',how='inner...用join合并 用下面这种方式会报错:列重叠,且没有指定后缀,因为上面的数据data和data2都有“id”列,所以需要给id列指明后缀。...数据筛选 7.1 使用与、或、非进行筛选 将满足origin是China且money小于35这两个条件的数据,返回其id、date、money、product、department、origin值。...8.4 以department属性进行分组汇总并计算money的合计与均值 data.groupby("department")['money'].agg([len, np.sum, np.mean])

    3.9K20

    pandas多表操作,groupby,时间操作

    可以合并两张以上的表,而merge只能合并两张表 left.join([right1, right2], how="outer") concat 轴向连接 pandas.concat可以沿着一条轴将多个表对象堆叠到一起...(上下连接) df1.append(df2).append(df3) combin_first 数据填补 使用场景:有两张表left和right,一般要求它们的表格结构一致,数据量也一致,使用right...的数据去填补left的数据缺漏 如果在同一位置left与right数据不一致,保留left的数据 df1.combin_first(df2) ---- groupby 个人认为一张非常经典的图片...'data2':[6,7,8,9,10]}) In [125]: df Out[125]: data1 data2 key1 key2 0 1 6 a one 1..., month, day time:表示时间的类,常用的属性有hour, minute, second, microsecond, tzinfo datetime:表示日期时间,常用的属性有year

    3.8K10

    【Mark一下】46个常用 Pandas 方法速查表

    导读:Pandas是日常数据分析师使用最多的分析和处理库之一,其中提供了大量方便实用的数据结构和方法。但在使用初期,很多人会不知道: 1.它能提供哪些功能? 2.我的需求应该用哪个方法?...本篇文章总结了常用的46个Pandas数据工作方法,包括创建数据对象、查看数据信息、数据切片和切块、数据筛选和过滤、数据预处理操作、数据合并和匹配、数据分类汇总以及map、apply和agg高级函数的使用方法...数据框与R中的DataFrame格式类似,都是一个二维数组。Series则是一个一维数组,类似于列表。数据框是Pandas中最常用的数据组织方式和对象。...3 数据切片和切块 数据切片和切块是使用不同的列或索引切分数据,实现从数据中获取特定子集的方式。...和data2关联,设置关联后的列名前缀分别为d1和d2 7 数据分类汇总 数据分类汇与Excel中的概念和功能类似。

    4.9K20

    B2B营销中使用Python进行探索性数据分析

    将使用来自Olist的数据,Olist是一个将中小型企业与巴西顶级市场连接起来的电子商务平台。...https://github.com/Fumanguyen/EDA-Python-B2B-Marketing 介绍 Olist是一个将中小型企业与巴西市场(Extra,Shoptime,Walmart,...Olist的商业模式 有了这个B2B2C模型,Olist的营销团队有两个主要目标: 从卖方方面来看,希望使用Olist平台增加商家数量。 从买方方面来看,希望最大化这些市场上商家的电子商务销售。...在2018年,将数量提升至每月1000-1400条线索。关于获胜的MQL,它的峰值是在05/2018,有200个获胜机会。...这意味着SEO和Google Adwords是Olist最有效的营销渠道。这个结果似乎与几个调查相关,这些调查说明了B2B公司最有效的营销渠道。

    1.3K21

    scRepertoire||单细胞免疫组库分析:R语言应用(二)

    克隆的比例 与上述克隆空间稳态一样,克隆比例作用是将克隆放入单独的箱(bin)中。...与表达谱数据整合 这里我就换一套数据来展示了,因为原教程的数据没有下载到,所以这里有用不知道从哪来的一套VDJ和RNA的数据来展示。需要说明的是,这里不是多个样本,而是一个样本了。...sub1 groupBy] == x[i]) sub2 data2, data2[, groupBy] == x...接下来,我们使用Seurat中的DimPlot()函数调用和scale_color_manual附加图层。...image 对于希望在Seurat对象中使用元数据来执行scRepertoire提供的分析的用户来说,还有一个选项是使用expression2List()函数,该函数将获取元数据并按亚群将数据输出为列表

    3.3K30

    python-for-data-groupby使用和透视表

    分组键 分组键可以是多种形式,并且键不一定是完全相同的类型: 与需要分组的轴向长度一致的值列表或者值数组 DataFrame列名的值 可以在轴索引或索引中的单个标签上调用的函数 可以将分组轴向上的值和分组名称相匹配的字典或者...df.groupby(['key1','key2'])[['data2']].mean() # 传递列表形式 df.groupby(['key1','ley2'])['data2'].mean()...常见的聚合函数: count sum mean median std、var min、max prod fisrt、last 如果想使用自己的聚合函数,...可以将函数传递给aggregate或者agg方法 ?...笔记2:只有当多个函数应用到至少一个列时,DF才具有分层列 返回不含行索引的聚合数据:通过向groupby传递as_index=False来实现 数据透视表和交叉表 DF中的pivot-table方法能够实现透视表

    2K30

    超级课程表APP爬虫,大学生都这么玩

    记得读大学时,看课程信息,查分数,看美女(嘘)都会使用超级课程表APP,当时这款APP非常火爆,今天,就带领大家回到大学,看看大学生都在干嘛?...该文涉及内容: 爬虫简介 性别分布 高校分布 帖子时间 帖子词云 爬虫简介 这次爬虫和以往不同,利用fiddler抓包工具,爬取手机APP数据,爬取的内容为热门内容,总共只有150条,爬虫代码很乱,下次整理好再分享给大家...包括的字段有: 用户名 性别(0为女性) 学校 发帖时间 发帖内容 发帖标签 ? 性别分布 统计性别分布,通过图可以看出,女生占大多数,毕竟小姐姐上热门更为简单,随便爆个照,卖个萌,阅读妥妥的。...data1 = df.groupby('gender')['gender'].count() from pyecharts import Pie attr = ['女生', '男生'] v1 = list...data2 = df.groupby('schoolName')['schoolName'].count() data2 = data2.sort_values(ascending=False)[:10

    69430

    Pandas常用的数据处理方法

    本文的Pandas知识点包括: 1、合并数据集 2、重塑和轴向旋转 3、数据转换 4、数据聚合 1、合并数据集 Pandas中合并数据集有多种方式,这里我们来逐一介绍 1.1 数据库风格合并 数据库风格的合并指根据索引或某一列的值是否相等进行合并的方式...2、重塑和轴向旋转 在重塑和轴向旋转中,有两个重要的函数,二者互为逆操作: stack:将数据的列旋转为行 unstack:将数据的行旋转为列 先来看下面的例子: data = pd.DataFrame...方法是apply,apply将会待处理的对象拆分成多个片段,然后对各片段调用传入的函数,最后尝试将各片段组合到一起. def top(df,n=5,column='tip_pct'): return...4.3 数据透视表 透视表是各种电子表格程序和其他数据分析软件中一种常见的数据汇总工具,它根据一个或多个键对数据进行聚合,并根据行和列伤的分组键将数据分配到各个矩形区域中。...考虑我们的小费数据集,我们想聚合tip_pct和size,想根据day进行分组,将smoker放到列上,将day放到行上: tips.pivot_table(['tip_pct','size'],index

    8.4K90
    领券