前言

对于聚合,指的是任何能够从数组产生标量值的数据转换过程。

许多常见的聚合运算(如表9-1所示)都有就地计算数据集统计信息的优化实现。然而,并不是只能使用这些方法。可以使用自己发明的聚合运算,还可以调用分组对象上已经定义好的任何方法。

调用现有函数进行聚合运算

举例:使用quantile计算Series或DataFrame列的样本分位数。

分析:虽然quantile并没有明确地实现于GroupBy,但它是一个Series方法,所以这里是能用的。实际上,GroupBy会高校地对Series进行切片,然后对各片调用),最后将这些结果组装成最终结果。

使用自己的聚合函数

如果要使用自己的聚合函数,只需将其传入aggregate或agg方法即可:

In [18]: def peak_to_peak(arr):

...: return arr.max()

...:

In [19]: grou(peak_to_peak)

Out[19]:

data1 data2

key1

a 1.874977 1.498612

b 2.237080 0.569494

其他方法的使用

注意,有些方法(如describe)也是可以用在这里的,即使严格来讲,它们并非聚合运算:

In [20]: grou()

Out[20]:

data1 ... data2

count mean std ... 50% 75% max

key1 ...

a 3.0 0.460594 0.957985 ... -0.464503 -0.233841 -0.003179

b 2.0 -0.081939 1.581855 ... 0.444932 0.587306 0.729679

[2 rows x 16 columns]

注意:可能已经注意到,自定义聚合函数要比表9-1中那些经过优化的函数慢得多。这是因为在构造中间分组数据块时存在非常大的开销(函数调用、数据重排等)。

添加列

通过read_csv加载文件后,添加一个表示小费比例的列tip_pct:

In [71]: tips=(r'C:\Users\lpt20\Desktop\aa\')

In [72]: tips['tip_pct']=tips['tip'] / tips['total_bill']

In [76]: tips[:6]

Out[76]:

total_bill tip smoker day time size tip_pct

0 16.99 1.01 No Sun Dinner 2 0.059447

1 10.34 1.66 No Sun Dinner 3 0.160542

2 21.01 3.50 No Sun Dinner 3 0.166587

3 23.68 3.31 No Sun Dinner 2 0.139780

4 24.59 3.61 No Sun Dinner 4 0.146808

5 25.29 4.71 No Sun Dinner 4 0.186240

1.《(聚合数据如何使用教程)聚合助手使用教程》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《(聚合数据如何使用教程)聚合助手使用教程》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/keji/3353142.html