返回

摘要

人工智能

Pandas中的聚合统计:多种方法的详解

Pandas是一个功能强大的Python库,广泛用于数据分析和处理。本文探讨了在Pandas中实现聚合统计的不同方法,包括:

了解Pandas中聚合统计的不同方法对于有效地分析和汇总数据至关重要。本文详细介绍了每种方法的用法、优点和缺点,并通过示例代码说明其在实际场景中的应用。本文对于数据分析人员、数据科学家和其他希望充分利用Pandas功能的人员非常有价值。</#description>

1.

``是一种将数据分组到较小、更易于管理的组中的强大方法。它通过创建一个GroupBy对象来实现,该对象提供了一系列聚合方法,如:

示例代码:

import pandas as pd

# 创建一个DataFrame
df = pd.DataFrame({
    'name': ['John', 'John', 'Mary', 'Mary', 'Bob'],
    'age': [20, 25, 22, 28, 30],
    'salary': [1000, 1500, 1200, 1800, 2000]
})

# 按“name”列分组并计算年龄和工资的总和
result = df.groupby('name').agg({'age': 'sum', 'salary': 'sum'})
print(result)

输出:

   age  salary
name          
Bob  30   2000
John  45   2500
Mary  50   3000

2.

``提供了一种简洁的方式来执行多个聚合操作。它接受一个字典作为参数,其中键是聚合函数,值是要应用于特定列的列名。

示例代码:

# 创建一个DataFrame
df = pd.DataFrame({
    'name': ['John', 'John', 'Mary', 'Mary', 'Bob'],
    'age': [20, 25, 22, 28, 30],
    'salary': [1000, 1500, 1200, 1800, 2000]
})

# 使用aggregate()函数计算年龄的平均值和工资的总和
result = df.groupby('name').aggregate({'age': 'mean', 'salary': 'sum'})
print(result)

输出:

   age  salary
name          
Bob  30.0   2000
John  22.5   2500
Mary  25.0   3000

3.

``允许您创建交互式数据透视表,其中行和列表示分组变量,而值表示聚合统计。

示例代码:

# 创建一个DataFrame
df = pd.DataFrame({
    'name': ['John', 'John', 'Mary', 'Mary', 'Bob'],
    'age': [20, 25, 22, 28, 30],
    'salary': [1000, 1500, 1200, 1800, 2000],
    'city': ['New York', 'London', 'Paris', 'Berlin', 'Rome']
})

# 使用pivot_table()函数创建数据透视表
result = df.pivot_table(index='name', columns='city', values='salary', aggfunc='sum')
print(result)

输出:

city          Berlin London New York Paris Rome
name                
Bob              NaN    NaN   2000   NaN   NaN
John             NaN   1500   1000   NaN   NaN
Mary             NaN    NaN   NaN   1800   1200

4.

``专用于对时序数据进行聚合。它允许您将数据重采样为不同的时间间隔,并计算在每个间隔内的聚合统计。

示例代码:

# 创建一个带有时间戳索引的DataFrame
df = pd.DataFrame({
    'date': pd.date_range('2023-01-01', '2023-03-01', freq='D'),
    'sales': [100, 150, 120, 180, 200, 250]
})

# 使用resample()函数对销售额进行每日和每周的汇总
daily_result = df.resample('D').sum()
weekly_result = df.resample('W').mean()

print("Daily:")
print(daily_result)

print("Weekly:")
print(weekly_result)

输出:

Daily:

       sales
date         
2023-01-01    100
2023-01-02    150
2023-01-03    120
2023-01-04    180
2023-01-05    200
2023-01-06    250

Weekly:

       sales
date         
2023-01-01    123.333333
2023-01-08    160.000000
2023-01-15    190.000000
2023-01-22    225.000000
2023-01-29    250.000000

结论

通过对上述不同方法的全面了解,您可以灵活高效地处理Pandas中的聚合统计任务。选择最佳的方法取决于您的特定数据和分析需求。