温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Pandas中如何实现数据分组与聚合操作

发布时间:2025-07-11 12:22:04 来源:亿速云 阅读:89 作者:小樊 栏目:编程语言

在Pandas中,数据分组与聚合操作可以通过groupby()函数实现。以下是一些基本步骤和示例:

基本步骤

  1. 导入Pandas库

    import pandas as pd
    
  2. 创建DataFrame

    data = {
        'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
        'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],
        'C': [1, 2, 3, 4, 5, 6, 7, 8],
        'D': [10, 20, 30, 40, 50, 60, 70, 80]
    }
    df = pd.DataFrame(data)
    
  3. 使用groupby()进行分组

    grouped = df.groupby('A')
    
  4. 应用聚合函数

    result = grouped.mean()
    

示例

示例1:基本分组与聚合

import pandas as pd

data = {
    'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
    'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],
    'C': [1, 2, 3, 4, 5, 6, 7, 8],
    'D': [10, 20, 30, 40, 50, 60, 70, 80]
}
df = pd.DataFrame(data)

# 分组并计算每组的平均值
result = df.groupby('A').mean()
print(result)

输出:

          C         D
A                  
bar     4.0    40.0
foo     4.5    45.0

示例2:多重分组

# 分组并计算每组的平均值
result = df.groupby(['A', 'B']).mean()
print(result)

输出:

              C         D
A   B                  
bar one     2.0    20.0
    three   4.0    40.0
    two     6.0    60.0
foo one     4.0    40.0
    three   8.0    80.0
    two     5.0    50.0

示例3:自定义聚合函数

# 自定义聚合函数
def custom_agg(x):
    return x.max() - x.min()

# 分组并应用自定义聚合函数
result = df.groupby('A').agg({'C': custom_agg, 'D': 'sum'})
print(result)

输出:

          C   D
A              
bar     4  120
foo     7  240

示例4:使用agg()方法

# 使用agg()方法进行多重聚合
result = df.groupby('A').agg({
    'C': ['mean', 'max'],
    'D': ['sum', 'min']
})
print(result)

输出:

          C                   D          
          mean max   sum min
A                               
bar     4.0   6  120  20
foo     4.5   8  240  10

注意事项

  • groupby()操作返回一个DataFrameGroupBy对象,需要进一步应用聚合函数。
  • 可以使用agg()方法进行多重聚合,并且可以为不同的列指定不同的聚合函数。
  • 自定义聚合函数可以通过传递一个函数对象来实现。

通过这些步骤和示例,你可以灵活地在Pandas中进行数据分组与聚合操作。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI