Pandas的GroupBy函数可以让用户将数据分组,并对分组后的数据进行聚合操作,从而得到更有价值的结果。GroupBy函数的使用方法如下:
1. 创建GroupBy对象
# 以下代码将DataFrame对象df按照列A进行分组 grouped = df.groupby('A')
2. 对GroupBy对象进行聚合操作
# 以下代码将分组后的DataFrame按照列B进行求和 grouped.sum()['B']
3. 使用GroupBy对象进行过滤操作
# 以下代码将分组后的DataFrame按照列C进行过滤,只保留大于等于5的行 grouped.filter(lambda x: x['C'].mean() >= 5)
4. 使用GroupBy对象进行转换操作
# 以下代码将分组后的DataFrame按照列D进行转换,将每一行的值乘以2 grouped.transform(lambda x: x * 2)
5. 使用GroupBy对象进行应用操作
# 以下代码将分组后的DataFrame按照列E应用一个自定义函数 grouped.apply(my_func)
示例
import pandas as pd # 创建一个DataFrame df = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'], 'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'], 'C': np.random.randn(8), 'D': np.random.randn(8)}) # 按照列A进行分组 grouped = df.groupby('A') # 对分组后的DataFrame按照列B进行求和 grouped.sum()['B'] # 将分组后的DataFrame按照列C进行过滤,只保留大于等于5的行 grouped.filter(lambda x: x['C'].mean() >= 5) # 将分组后的DataFrame按照列D进行转换,将每一行的值乘以2 grouped.transform(lambda x: x * 2) # 将分组后的DataFrame按照列E应用一个自定义函数 grouped.apply(my_func)
以上就是Pandas的GroupBy函数的使用方法,通过GroupBy函数可以将数据分组,并对分组后的数据进行聚合操作,从而得到更有价值的结果。