Pandas 数据聚合

Pandas 数据聚合

在本文中,我们将介绍Pandas中的数据聚合。数据聚合是一种常见的数据转换方式,通过聚合计算可得到数据的总体特征。Pandas提供了强大的聚合函数和灵活的组合操作,能够快速地处理大规模的数据集。

阅读更多:Pandas 教程

Pandas中的聚合函数

Pandas中的聚合函数可以分为两类:基于Series的函数,和基于DataFrame的函数。其中,基于Series的函数适用于单列数据的聚合计算,如求取最大值、最小值、总数、均值等;而基于DataFrame的函数则适用于多列数据的复杂聚合计算,如分组、统计等。

基于Series的聚合函数

Pandas中的聚合函数有很多种,常用的有以下几种:

sum()函数:计算数据的总和。

import pandas as pd

data = pd.Series([1, 2, 3, 4, 5])
print(data.sum())   # 输出15

mean()函数:计算数据的平均值。

import pandas as pd

data = pd.Series([1, 2, 3, 4, 5])
print(data.mean())  # 输出3.0

min()函数:计算数据的最小值。

import pandas as pd

data = pd.Series([1, 2, 3, 4, 5])
print(data.min())   # 输出1

max()函数:计算数据的最大值。

import pandas as pd

data = pd.Series([1, 2, 3, 4, 5])
print(data.max())   # 输出5

count()函数:计算数据的数据数量。

import pandas as pd

data = pd.Series([1, 2, 3, 4, 5])
print(data.count()) # 输出5

median()函数:计算数据的中位数。

import pandas as pd

data = pd.Series([1, 2, 3, 4, 5])
print(data.median()) # 输出3.0

基于DataFrame的聚合函数

在基于DataFrame的聚合函数中,最常用的是groupby函数。groupby函数将数据按照某些条件分组,然后对每一组数据求取聚合函数。

import pandas as pd

data = pd.DataFrame({
    'group': ['A', 'B', 'C', 'A', 'B', 'C'],
    'value': [1, 2, 3, 4, 5, 6]
})

# 按照group列分组后,对每一组求取均值
print(data.groupby('group').mean())

"""
输出:

       value
group       
A        2.50
B        3.50
C        4.50
"""

# 按照group列分组后,对每一组求取最大值
print(data.groupby('group').max())

"""
输出:

       value
group       
A           4
B           5
C           6
"""

groupby函数支持多列分组、多个聚合函数等复杂操作。详细使用方法请参考Pandas官方文档。

Pandas中的聚合操作

除了聚合函数,Pandas还提供了许多强大的聚合操作,可以通过组合、过滤、转换等多种操作方式,实现多样化的聚合计算,如下所示:

组合操作

组合操作是指在数据中添加、删除、修改数据,然后进行聚合计算的操作。常用的组合操作包括concat、join和merge等。

import pandas as pd

# 定义两个数据集
data1 = pd.DataFrame({
    'key': ['K0', 'K1', 'K2', 'K3'],
    'A': ['A0', 'A1', 'A2', 'A3']
})
data2 = pd.DataFrame({
    'key': ['K0', 'K1', 'K2', 'K3'],
    'B': ['B0', 'B1', 'B2', 'B3']
})

# 按照key列进行连接
result = pd.merge(data1, data2, on='key')

print(result)

"""
输出:

  key   A   B
0  K0  A0  B0
1  K1  A1  B1
2  K2  A2  B2
3  K3  A3  B3
"""

过滤操作

过滤操作是指在数据中根据特定条件,筛选出需要的数据进行聚合计算的操作。常用的过滤操作包括filter和where两种方法。

import pandas as pd

# 定义一个数据集
data = pd.DataFrame({
    'group': ['A', 'B', 'C', 'A', 'B', 'C'],
    'value': [1, 2, 3, 4, 5, 6]
})

# 按照group进行分组后,对value列进行过滤操作
result = data.groupby('group').filter(lambda x: x['value'].mean() > 3)

print(result)

"""
输出:

  group  value
1     B      2
2     C      3
4     B      5
5     C      6
"""

转换操作

转换操作是指在数据中对特定列进行计算,并将计算结果合并到原有数据中进行聚合计算的操作。常用的转换操作包括apply、transform等方法。

import pandas as pd

# 定义一个数据集
data = pd.DataFrame({
    'group': ['A', 'B', 'C', 'A', 'B', 'C'],
    'value': [1, 2, 3, 4, 5, 6]
})

# 按照group进行分组后,对value列进行转换操作
result = data.groupby('group').apply(lambda x: x['value'] - x['value'].mean())

print(result)

"""
输出:

0   -1.5
1   -0.5
2    0.5
3    0.5
4    1.5
5    0.5
dtype: float64
"""

总结

本文介绍了Pandas中的数据聚合操作,包括基于Series的聚合函数、基于DataFrame的聚合函数、组合操作、过滤操作和转换操作。这些操作的灵活组合可以实现丰富多样的数据聚合计算,是Pandas中重要的数据处理方法之一。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程