返回
摘要
人工智能
2024-01-26 16:11:25
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中的聚合统计任务。选择最佳的方法取决于您的特定数据和分析需求。