更新时间:2022年10月24日10时35分 来源:传智教育 浏览次数:
假设现在产生另外一个需求,不仅需要求出每组数据的极差,还需要计算出每组数据的和,即对一列数据使用两种不同的函数。这时,可以将两个函数的名称放在列表中,之后在调用agg()方法聚合时作为参数传入即可,具体示例代码如下。
In [21]: # 对一列数据用两种函数聚合 data_group.agg([range_data_group, sum]) Out [21]: a b ... e f range_data_group sum range_data_group ... sum range_data_group sum key a 12 18 12 ... 30 12 33 b 12 72 12 ... 84 12 87 [2 rows x 12 columns]
从输出的结果可以看出,生成的DataFrame对象具有两层列索引,每个外层列索引包含两个内层列索引,分别以函数的名称range_data_group和sum命名。
虽然每一列可以应用不同的函数,但是结果并不能很直观地辨别出每个函数代表的含义。Pandas的设计者已经考虑到这一点,为了能更好地反映出每列对应的数据的信息,可以使用“(name,function)”元组将function(函数名)替换为name(自定义名称)。下面,在上述示例中进一步优化内层索引的名称,具体代码如下。
In [22]: data_group.agg([(“极差” , range_data_group), (“和” , sum)]) Out[22]: a b c d e f 极差 和 极差 和 极差 和 极差 和 极差 和 极差 和 key a 12 18 12 21 12 24 12 27 12 30 12 33 b 12 72 12 75 12 78 12 81 12 84 12 87
从输出的结果可以看出,函数名经过重命名以后,可以很清晰直观地找到每组数据的极差值以及总和。