使用内置统计方法聚合数据
数据聚合,一般是指对分组中的数据执行某些操作,比如求平均值、求最大值等,并且操作后会得到一个结果集,这些实现聚合的操作称为聚合方法。Pandas中提供了用做聚合操作的agg()方法。
前面已经介绍过Pandas的统计方法,比如用于获取最大值和最小值的max()和mix(),这些方法常用于简单地聚合分组中的数据。
假设现在我们要计算某DataFrame对象中每个分组的平均数,那么可以先按照某一列进行分组,使用mean()方法应用到每个分组中,并计算出平均数,最后将再将每个分组的计算结果合并到一起,具体代码如下。
In [13]: import pandas as pd
import numpy as np
df = pd.DataFrame({'key1': ['A', 'A', 'B', 'B', 'A'],
'key2': ['one', 'two', 'one', 'two', 'one'],
"data1": [2, 3, 4, 6, 8],
"data2": [3, 5, np.nan, 3,7]})
df
Out[13]:
key1 key2 data1 data2
0 A one 2 3.0
1 A two 3 5.0
2 B one 4 NaN
3 B two 6 3.0
4 A one 8 7.0
In [14]: df.groupby('key1').mean() # 按key1进行分组,求每个分组的平均值
Out[14]:
data1 data2
key1
A 4.333333 5.0
B 5.000000 3.0
上述示例中,把key1作为分组键,将df对象拆分为A组和B组,然后调用mean()函数分别作用于A、B两组中,计算得到每组的平均值,最后将计算结果进行合并。
需要注意的是,如果参与运算的数据中有NaN值,则会自动地将这些NaN值过滤掉。