pandas groupby运算

Pandas详解十六之groupby分组后分开运算 约定 import pandas as pd import numpy as np groupby分组后分开运算 Groupby对象支持迭代,当我们分组后想保存分组结果而不想运算,或者分别对每组进行不同的运算,这时是十分有用的。 1 创建 df1=pd.DataFrame({'Data1':np.random.randint(0,10,5),'Data2':np.random.ran... 阅读详情

原文链接:https://my.oschina.net/lionets/blog/280332

#GroupBy

分组运算有时也被称为 “split-apply-combine” 操作。其中的 “split” 便是借由 obj.groupby() 方法来实现的。

.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False) 方法作用于一条轴向上,并接受一个分组键(by)参数来给调用者分组。分组键可以是Series 或列表,要求其长度与待分组的轴一致;也可以是映射函数、字典甚至数组的某条列名(字符串),但这些参数类型都只是快捷方式,其最终仍要用于生成一组用于拆分对象的值。

lang:python
>>> df = DataFrame({'key1':['a','a','b','b','a'],
                   'key2':['one','two','one','two','one'],
                   'data1':np.random.randn(5),
                   'data2':np.random.randn(5)})
>>> df
      data1     data2 key1 key2
0  0.922269  0.110285    a  one
1 -0.181773  1.022435    a  two
2  0.635899  0.279316    b  one
3  0.527926  0.482807    b  two
4 -1.586040 -1.312042    a  one

[5 rows x 4 columns]
>>> grouped = df.groupby(df['key1'])
>>> grouped
<pandas.core.groupby.DataFrameGroupBy object at 0x0000000005BC25F8>

这里使用 df['key1'] 做了分组键,即按 a 和 b 进行分组。但实际分组键并不需要与数组对象之间存在联系,只要长度相同即可,使用数组的列只是图方便。上例中如果使用 [1,1,2,2,3] 这样的列表做分组键的话,结果与 df['key1'] 是相同的。

groupby 方法返回的 DataFrameGroupBy 对象实际并不包含数据内容,它记录的是有关分组键——df['key1'] 的中间数据。当你对分组数据应用函数或其他聚合运算时,pandas 再依据 groupby 对象内记录的信息对 df 进行快速分块运算,并返回结果。

上面这段话其实想说是: groupby 方法的调用本身并不涉及运算,因此速度很快。而在操作这个 grouped 对象的时候,还是将其看成一个保存了实际数据的对象比较方便。比如我们可以直接对其应用很多方法,或索引切片:

lang:python
>>> grouped.mean()
         data1     data2
key1                    
a    -0.281848 -0.059774
b     0.581912  0.381061

[2 rows x 2 columns]

上例中没有显示 key2 列,是因为其值不是数字类型,被 mean() 方法自动忽视了。当想要只看某一(些)列的时候,可以通过索引来实现,在 groupby 方法调用前后均可(这是一种语法糖):

lang:python
>>> df['data1'].groupby(df['key1']).mean()
key1
a      -0.281848
b       0.581912
dtype: float64
>>> df.groupby(df['key2'])['data2'].mean()
key2
one    -0.307481
two     0.752621
Name: data2, dtype: float64

如果分组键使用的是多个数组,就会得到一个层次化索引的结果:

lang:python
>>> df.groupby([df['key1'],df['key2']]).mean()
              data1     data2
key1 key2                    
a    one  -0.331885 -0.600879
     two  -0.181773  1.022435
b    one   0.635899  0.279316
     two   0.527926  0.482807

[4 rows x 2 columns]

最后,可以使用 GroupBy 对象(不论是 DataFrameGroupBy 还是 SeriesGroupBy)的 .size() 方法查看分组大小:

lang:python
>>> grouped.size()
key1
a       3
b       2
dtype: int64

<br /> ###对分组进行迭代 GroupBy 对象是可以通过 for 循环迭代的,可以产生一组二元组,分别为分组名和组内数据。下面是一个多重分组键的情况:

lang:python
>>> for i,j in df.groupby([df['key1'],df['key2']]):
        print(i)
        print('-----------')
        print(j)

        
('a', 'one')
-----------
      data1     data2 key1 key2
0  0.922269  0.110285    a  one
4 -1.586040 -1.312042    a  one

[2 rows x 4 columns]
('a', 'two')
-----------
      data1     data2 key1 key2
1 -0.181773  1.022435    a  two

[1 rows x 4 columns]
('b', 'one')
-----------
      data1     data2 key1 key2
2  0.635899  0.279316    b  one

[1 rows x 4 columns]
('b', 'two')
-----------
      data1     data2 key1 key2
3  0.527926  0.482807    b  two

[1 rows x 4 columns]

<br /> ###使用字符串列名作分组键 前面曾提到过可以使用**字符串形式的列名**作为分组键,但上面例子中都没有用。是因为这种方法虽然方便,却存在隐患——使用这种方法时,调用者必须是 DataFrame 对象自身而不可以是 DataFrame 的索引形式。即 `df.groupby('key1')['data1']` 是 ok 的,但 `df['data1'].groupby('key1')` 会报错。使用时当注意区分。 <br /> ###使用 字典或Series作分组键 这两种参数需要提供一种从行(列)名到组名的映射关系。(还记得 Series 就是一种定长有序字典 这种说法嘛)

lang:python
>>> df.groupby({0:'a',1:'a',2:'b',3:'b',4:'a'}).mean()
      data1     data2
a -0.281848 -0.059774
b  0.581912  0.381061

[2 rows x 2 columns]

<br /> ###通过函数进行分组 函数的作用有些类似于字典,或者说这些奇怪的分组键都类似于字典——利用某种映射关系将待分组的轴转化为一个等长的由分组名组成的序列。

如果说行列名是作为索引传递给字典以获取组名的话,那么在函数分组键中,行列名就会作为参数传递给函数。这便是你需要提供的函数类型:

lang:python
>>> df.groupby(lambda x:'even' if x%2==0 else 'odd').mean()
         data1     data2
even -0.009290 -0.307481
odd   0.173076  0.752621

[2 rows x 2 columns]

<br /> ###根据索引级别分组 当根据高级别索引来分组的时候,参数就不再是 `by=None` 了,而要换成 `level=None`,值可以是索引级别的编号或名称:

lang:python
>>> index = pd.MultiIndex.from_arrays([['even','odd','even','odd','even'],
                                  [0,1,2,3,4]],names=['a','b'])
>>> df.index = index
>>> df.groupby(level='a').mean()
         data1     data2
a                       
even -0.009290 -0.307481
odd   0.173076  0.752621

[2 rows x 2 columns]
>>> df.groupby(level=0).mean()
         data1     data2
a                       
even -0.009290 -0.307481
odd   0.173076  0.752621

[2 rows x 2 columns]

<br /> #数据聚合(Aggregation) --- 数据聚合,指的是任何能够从数组产生标量值的数据转换过程。你也可以简单地将其理解为统计计算,如 mean(), sum(), max() 等。

数据聚合本身与分组并没有直接关系,在任何一列(行)或全部列(行)上都可以进行。不过当这种运算被应用在分组数据上的时候,结果可能会变得更有意义。

对于 GroupBy 对象可以应用的聚合运算包括:

  • 已经内置的方法,如 sum(), mean() 等
  • Series 的方法,如 quantile() 等
  • 自定义的聚合函数,通过传入 GroupBy.aggregate() 或 GroupBy.agg() 来实现

其中自定义函数的参数应当为一个数组类型,即 GroupBy 对象迭代出的元组的第二个元素。如

lang:python
>>> df.groupby('key1')['data1','data2'].agg(lambda arr:arr.max()-arr.min())
         data1     data2
key1                    
a     2.508309  2.334477
b     0.107973  0.203492

[2 rows x 2 columns]

但其实自定义函数的效率很慢,远不如 GroupBy 对象已经优化过的内建方法,这些方法包括: <br />

<table style="font-size:14px"> <tr> <td>############</td> <td>****************************************************</td> </tr> <tr> <td>count</td> <td>分组中非 NA 值得数量</td> </tr> <tr> <td>sum</td> <td>非 NA 值的和</td> </tr> <tr> <td>mean</td> <td>非 NA 值的平均值</td> </tr> <tr> <td>median</td> <td>非 NA 值的算数中位数</td> </tr> <tr> <td>std, var</td> <td>无偏(分母为 n-1)标准差和方差</td> </tr> <tr> <td>min, max</td> <td>非 NA 值的最小值和最大值</td> </tr> <tr> <td>prod</td> <td>非 NA 值的积</td> </tr> <tr> <td>first, last</td> <td>第一个和最后一个非 NA 值</td> </tr> </table> <br /> ###面向列的多函数应用 前面的例子中,我们每次都只调用一个聚合方法。对于多函数应用,我们可以分两种情况讨论:

第一种是相同列应用多个函数从而得到多个结果的情况,这时只需给 agg() 传入一个函数列表即可:

lang:python
>>> df.groupby('key1')['data1','data2'].agg(['min','max'])
         data1               data2          
           min       max       min       max
key1                                        
a    -1.586040  0.922269 -1.312042  1.022435
b     0.527926  0.635899  0.279316  0.482807

[2 rows x 4 columns]

这里一个技巧是,对上节中那些统计方法,可以将方法名以字符串的形式传入 agg()。另外,如果你不喜欢列的命名方式,或你使用的干脆是 lambda 匿名函数,你可以把函数参数替换成(name,function)的元组格式,这样结果集中的列就不再以函数名命名而是以你给出的 name 为准。

第二种是对不同列应用不同函数的情况,这时需要传给 agg() 一个从列名映射到函数名的字典:

lang:python
>>> df.groupby('key1').agg({'data1':'min','data2':'max'})
         data1     data2
key1                    
a    -1.586040  1.022435
b     0.527926  0.482807

[2 rows x 2 columns]

这里要注意的是,就不要再在 GroupBy 对象上进行索引操作啦,你的字典参数已经做了响应的列选取工作。 <br /> #分组级运算和转换

聚合只是分组运算的一种,更多种类的分组运算可以通过 .transform() 和 apply() 方法实现。 <br /> ###transform 前面进行聚合运算的时候,得到的结果是一个以分组名为 index 的结果对象。如果我们想使用原数组的 index 的话,就需要进行 merge 转换。transform(func, *args, **kwargs) 方法简化了这个过程,它会把 func 参数应用到所有分组,然后把结果放置到原数组的 index 上(如果结果是一个标量,就进行广播):

lang:python
>>> df
           data1     data2 key1 key2
a    b                              
even 0  0.922269  0.110285    a  one
odd  1 -0.181773  1.022435    a  two
even 2  0.635899  0.279316    b  one
odd  3  0.527926  0.482807    b  two
even 4 -1.586040 -1.312042    a  one

[5 rows x 4 columns]
>>> df.groupby('key1').transform('mean')
           data1     data2
a    b                    
even 0 -0.281848 -0.059774
odd  1 -0.281848 -0.059774
even 2  0.581912  0.381061
odd  3  0.581912  0.381061
even 4 -0.281848 -0.059774

[5 rows x 2 columns]

<br /> ###apply `apply(func, *args, **kwargs)` 会将待处理的对象拆分成多个片段,然后对各片段调用传入的函数,最后尝试用 `pd.concat()` 把结果组合起来。func 的返回值可以是 pandas 对象或标量,并且数组对象的大小不限。

lang:python
>>> df
      data1     data2 key1 key2
0  0.721150 -0.359337    a  one
1 -1.727197  1.539508    a  two
2 -0.339751  0.171379    b  one
3 -0.291888 -1.000769    b  two
4 -0.127029  0.506162    a  one

[5 rows x 4 columns]
>>> def foo(df,n=12):
        return pd.DataFrame(np.arange(n).reshape(3,4))

>>> df.groupby('key1').apply(foo)
        0  1   2   3
key1                
a    0  0  1   2   3
     1  4  5   6   7
     2  8  9  10  11
b    0  0  1   2   3
     1  4  5   6   7
     2  8  9  10  11

[6 rows x 4 columns]

这是一个毫无意义的例子,因为传给 apply 的 func 参数没有对 df 做任何处理,直接返回了一个(3,4)的数组。而实际上,这样一个毫无意义的例子恰好说明了 apply 方法的通用性——你可以返回任意的结果。多数时候,限制 apply 发挥的其实是用户的脑洞。 <br /> ###透视表和交叉表 DataFrame 对象有一个 .pivot_table(data, values=None, rows=None, cols=None, aggfunc='mean', fill_value=None, margins=False, dropna=True) 方法可以用来制作透视表,同时 pd.pivot_table() 也是一个顶层函数。

  • data 参数相当于 self,这里将其命名为 data 也许是为了与顶级函数版本的 pivot_table 保持一致。
  • values 参数可以是一个以列名为元素的列表,用于指定想要聚合的数据,不给出的话默认使用全部数据。
  • rows 参数用于指定行分组键
  • cols 参数用于指定列分组键
  • aggfunc 参数用于指定聚合函数,默认为均值(mean)
  • margins 参数是小计(Total)功能的开关,设为 True 后结果集中会出现名为 “ALL” 的行和列

例:

lang:python
>>> df
   A   B   C      D
0  foo one small  1
1  foo one large  2
2  foo one large  2
3  foo two small  3
4  foo two small  3
5  bar one large  4
6  bar one small  5
7  bar two small  6
8  bar two large  7

>>> table = pivot_table(df, values='D', rows=['A', 'B'],
...                     cols=['C'], aggfunc=np.sum)
>>> table
          small  large
foo  one  1      4
     two  6      NaN
bar  one  5      4
     two  6      7

<br /> 交叉表(cross-tabulation,crosstab)是一种用于计算分组频数的特殊透视表。

crosstab(rows, cols, values=None, rownames=None, colnames=None, aggfunc=None, margins=False, dropna=True)

lang:python
>>> a
array([foo, foo, foo, foo, bar, bar,
       bar, bar, foo, foo, foo], dtype=object)
>>> b
array([one, one, one, two, one, one,
       one, two, two, two, one], dtype=object)
>>> c
array([dull, dull, shiny, dull, dull, shiny,
       shiny, dull, shiny, shiny, shiny], dtype=object)

>>> crosstab(a, [b, c], rownames=['a'], colnames=['b', 'c'])
b    one          two
c    dull  shiny  dull  shiny
a
bar  1     2      1     0
foo  2     2      1     2
pandas 的分组与聚合运算/groupby/transform/apply/agg dataframe.groupby(): 用途:对一个dataframe或series进行分组计算操作 基本语法: DataFrame.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, **kwargs) 参数释义: by : 计算方式 by=函数:对df/s... 阅读详情

相关推荐

pandas聚合和分组运算之groupby

pandas提供了一个灵活高效的groupby功能,它使你能以一种自然的方式对数据集进行切片、切块、摘要等操作。根据一个或多个键(可以是函数、数组或DataFrame列名)拆分pandas对象。计算分组摘要统计,如计数、平均值、标准差,或用户自定义函数。对DataFrame的列应用各种各样的函数。应用组内转换或其他运算,如规格化、线性回归、排名或选取子集等。计算透视表或交叉表。执行分位数分析以及其他

GeekLee的博客 3904

groupby后面接两个_Pandas学习笔记(十五):GroupBy研究

前言在之前我们的实战环节中,曾用到Pandas的groupby函数来统计一些数据,但在使用过程中,还是显得很笨拙,这一篇文章我们来重新认真梳理一下与groupby有关的知识,以便于在数据分析中更好的使用。groupby的实质是将数据按选定的列进行分类合并后再形成一个大的“数据框架”,但这个新形成的“数据框架”却具备了很多统计功能,下面我们来详细说明。数据准备学习Pandas最好的方式即是...

weixin_34637293的博客 1710

【数据分析学习笔记day17】Pandas分组与聚合分组 (groupby)+聚合 (aggregation)+数据的分组运算+groupby.apply(func)+1. 分组操作 2. 分组运算

文章目录Pandas分组与聚合分组 (groupby)一、GroupBy对象:DataFrameGroupBy,SeriesGroupBy1. 分组操作2. 分组运算3. 按自定义的key分组二、GroupBy对象支持迭代操作1. 单层分组2. 多层分组三、GroupBy对象可以转换成列表或字典1. 按列分组、按数据类型分组2. 其他分组方法3. 通过字典分组4. 通过函数分组,函数传入的参数为行...

汪雯琦的博客 1617

Pandas怎样实现groupby分组统计

一、如何实现分组统计 groupby:先对数据分组,然后在每个分组上应用聚合函数、转换函数 通过三个实例来了解pandas是如何实现分组统计的 一、分组使用聚合函数做数据统计 二、遍历groupby的结果理解执行流程 三、实例分组探索天气数据 导入数据 import pandas as pd import numpy as np # 加上这一句,能在jupyter notebook展示matplot图表 #%matplotlib inline df = pd.DataFrame({'A': ['foo',

xiaoliu的博客 1万+

深入解析report_timing:从基础参数到高级时序路径分析技巧

本文深入解析了静态时序分析(STA)中`report_timing`命令的核心用法与高级技巧。作为芯片设计的关键诊断工具,它能根据SDC约束精准定位时序路径问题。文章从基础参数过滤讲起,详细介绍了如何通过`-from`、`-through`、`-to`等选项定位关键路径,并深入讲解了`-input_pins`、`-nets`、`-transition_time`等高级选项如何揭示延迟细节,以及`-nworst`、`-slack_lesser_than`等过滤排序技巧,旨在帮助工程师高效解读时序报告,优化设计

h6i7j8的博客 1108

西门子 标准程序解读---> 机器手抓取和涂胶控制程序

摘要 该程序实现机械手在OP70/OP90工位的自动化控制,核心功能包括: 流程控制:分段(Seg1-Seg11)管理抓件、涂胶、放件等动作,结合DB1050/DB1250数据块监控工位状态及变位机位置反馈。 安全机制:配置干涉区(FC124)、实时检测安全光/急停信号,防止碰撞;服务程序(FB191)支持维修位触发与安全隔离。 参数配置:通过DB块关联机器人速度、节拍(FB27)、车型编码(如空过=2)及手自动模式(DB70.DBX21.2)。 应用场景:适用于汽车焊接/装配线

工控智联驿站 1239

【Pandas 基础知识 GroupBy分组】

图解Pandas 分组机制

我的数据分析师之路 4199

软件测试工程师笔试题

这里写目录标题全套软件测试面试笔试题(附答案)二、选折三、添空四、简答(资料是搜集整理的,感谢前辈的解题)无1.区别阶段评审的与同行评审2.什么是软件测试3. 简述集成测试的过程4 怎么做好文档测试5 白盒测试有几种方法6 系统测试计划是否需要同行审批,为什么7Alpha 测试与 beta 的区别8 比较负载测试,容量测试和强度测试的区别。性能测试从使用方便的角度来说,9 测试结束的标准是什么?10 描述软件测试活动的生命周期?11 软件的缺陷等级应如何划分? 软件测试工程师笔试题(附答案) 全套软件测试面

m0_46446002的博客 2549

数据的分组运算(GroupBy)——基础篇

数据的分组运算—groupby参数解读基本使用1)Series分组2)DataFrame的分组GroupBy对象size方法分组进行迭代依据每列数据类型进行分组分组后选取一个或一组列进行运算使用字典或者Series进行分组1)字典形式进行分组2)Series形式进行分组通过函数进行分组依据索引级别进行分组 分组运算的标准术语**“拆分—应用—合并”(split-apply-combine)**,具...

Jakob_Hu的博客 6110

CESM2 实验笔记

文章目录1. 重新启动1.1 关于重启文件2. RUN_TYPE 初始化运行方式startupbranchhybrid3. branch 或者 hybrid运行的示例4. 其他声明5. 关于RESUBMIT 1. 重新启动 参考: https://bb.cgd.ucar.edu/cesm/threads/how-to-restart-cesm2-1-3-fhist-from-a-backup.5245/#post-36275 适用情况:模型运行因时间不足或其它原因中断,需要继续运行 方法1:将CONTIN

qq_38607066的博客 1万+

cadence capture CIS 之使用access创建数据库(.mdb)

cadence capture CIS 之使用access创建数据库(.mdb)准备工作新建数据库 准备工作 1、一台电脑; 2、安装 Microsoft access database; 新建数据库 打开你准备创建数据库的位置,右键单击——》新建——》 Microsoft access database(注意:文件格式要选*.mdb) 打开数据库文件,创建——》表; 对数据表进行编辑,编辑表头、编辑表的内容、增加表的数量; 编辑表头:选中要编辑的表——》表设计 编辑内容:类似于excel添

weixin_42256550的博客 3147

pandas中Groupby使用(二)-对分组进行迭代

#-*- coding:utf-8 -*- import pandas as pd import numpy as np df=pd.DataFrame({'key1':['a','a','b','b','a'],'key2':['one','two','one','two','one'], 'data1':np.random.randn(5),'data2':n

pywin 1万+

激光雷达的64线,32线,16线,你弄懂了吗?

激光雷达的 64 线、32 线、16 线是指激光雷达系统中能够同时发射和接收激光脉冲的激光线的数量5。

谢谢大家的关注和点赞!这里只有纯纯的知识干货,没有一句废话。希望能实实在在帮到大家~要是觉得有用,别忘了给我点支持哟,你 2637

Pandas分组运算(groupby)

原文:https://www.cnblogs.com/lemonbit/p/6810972.html 侵删。 Pandas的groupby()功能很强大,用好了可以方便的解决很多问题,在数据处理以及日常工作中经常能施展拳脚。 今天,我们一起来领略下groupby()的魅力吧。 首先,引入相关package: import pandas as pd import numpy as np...

lyy的博客 1676

华为OD机试真题 新系统 9月16号 【园区基站节能部署规划】

华为OD机试真题 新系统【园区基站节能部署规划】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题 【园区基站节能部署规划】多语言题解。

qq_45776114的博客 356

运放+MOS恒流源电路仿真分析

利用运放设计一个恒流源

HW-BASE的博客 4088

pandas合并groupby_pandas数据聚合与分组运算——groupby方法

简介pandas中一类非常重要的操作是数据聚合与分组运算。通过groupby方法能够实现对数据集的拆分、统计、转换等操作,这个过程一气呵成。在本文中,你将学到:选取特定列分组;对分组进行迭代;通过字典或Series分组;通过函数分组;通过索引级别分组。Groupby技术一个完整的分组运算过程是:“split-apply-combine”(拆分-应用-合并)。首先将数据分组拆分,按照组别划分。这种分...

weixin_30433439的博客 1044

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

pandas聚合和分组运算——GroupBy技术(1)

数据聚合与分组运算——GroupBy技术(1),有需要的朋友可以参考下。   pandas提供了一个灵活高效的groupby功能,它使你能以一种自然的方式对数据集进行切片、切块、摘要等操作。根据一个或多个键(可以是函数、数组或DataFrame列名)拆分pandas对象。计算分组摘要统计,如计数、平均值、标准差,或用户自定义函数。对DataFrame的列应用各种各样的函数。应用组内转换或其他运算...

IAlexanderI的专栏 2337

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

pandas分组运算(groupby)

1. groupby() import pandas as pd df = pd.DataFrame([[1, 1, 2], [1, 2, 3], [2, 3, 4]], columns=["A", "B", "C"]) print(df) g = df.groupby('A').mean() # 按A列分组(groupby),获取其他列的均值 print(g) ''' 遇到问题没人解...

python学习者的博客 2227

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

python size和count_Pandas分组运算(groupby)修炼

Pandas分组运算(groupby)修炼Pandas的groupby()功能很强大,用好了可以方便的解决很多问题,在数据处理以及日常工作中经常能施展拳脚。今天,我们一起来领略下groupby()的魅力吧。首先,引入相关package:import pandas as pdimport numpy as npgroupby的基础操作In [2]: df = pd.DataFrame({'A': [...

weixin_39768388的博客 699

python/pandas数据挖掘(十四)-groupby,聚合,分组级运算

groupby,聚合,分组级运算,python 数据分析

python|大数据爱好者Alvin 21万+

利用Pandas的groupby和矢量化运算,减少显式循环,提高处理速度

利用Pandas的groupby和矢量化运算

weixin_46713695的博客 1155

pandas数据分组运算:groupby

groupby:pandas中最为常用的分组函数(1)、按列分组import pandas as pd import numpy as np df = DataFrame({'key1':['a','a','b','b','a'],'key2':['one','two','one','two','one'],'data1':np.random.randn(5),'data2':np.random.r

u013402321的博客 5293

Pandas教程19:groupby分组后,对列中指定关键字的组,进行求和运算。

接下来,我们对筛选后的DataFrame按’朝代列’进行分组,并对每个组的’评分列’或’年龄列’进行求和。Pandas教程07:DataFrame数据的算术运算+逻辑运算+describe()方法+统计函数+自定义函数运算。Pandas教程17:关于json数据转化成DataFrame数据,消除警告提示的方法。---------------pandas数据分析集合---------------Pandas数据化分析,DataFrame行列索引数据的选取,增加,修改和删除操作。

我的Python教程 2012
上一篇: plt修改横纵坐标颜色
下一篇: pandas如何去掉、过滤数据集中的某些值或者某些行
沉思的雅典娜
博客等级 码龄15年 16粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值