返回

Pandas 进阶:用简单运算、统计和排序理解 DataFrame

闲谈

在前面的章节中,我们讨论了 Series 的计算方法和 Pandas 的自动对齐功能。不光是 Series,DataFrame 也是支持运算的,而且还是经常被使用的功能之一。由于 DataFrame 的数据结构中包含了多行、多列,所以 DataFrame 的计算与统计可以是用行数据或者用列数据。

一、简单运算

DataFrame 的简单运算与 Series 类似,也是通过使用算术运算符来实现的。但是,由于 DataFrame 是一个多维数据结构,所以运算时需要考虑行和列的维度。

1. 行运算

行运算是在 DataFrame 的每一行上执行运算。例如,我们可以使用 +-*/ 运算符来对 DataFrame 的每一行进行加减乘除运算。

import pandas as pd

df = pd.DataFrame({
    "A": [1, 2, 3],
    "B": [4, 5, 6],
    "C": [7, 8, 9]
})

df + 10

# 输出:
#    A   B   C
# 0  11  14  17
# 1  12  15  18
# 2  13  16  19

2. 列运算

列运算是在 DataFrame 的每一列上执行运算。例如,我们可以使用 +-*/ 运算符来对 DataFrame 的每一列进行加减乘除运算。

import pandas as pd

df = pd.DataFrame({
    "A": [1, 2, 3],
    "B": [4, 5, 6],
    "C": [7, 8, 9]
})

df + df.T

# 输出:
#    A  B  C
# 0  2  9 16
# 1  7 10 19
# 2 12 11 22

二、统计

DataFrame 的统计功能非常强大,它可以帮助我们快速地对数据进行汇总和分析。

1. describe() 方法

describe() 方法可以显示 DataFrame 中各个列的统计信息,包括计数、均值、标准差、最小值、最大值等。

import pandas as pd

df = pd.DataFrame({
    "A": [1, 2, 3],
    "B": [4, 5, 6],
    "C": [7, 8, 9]
})

df.describe()

# 输出:
#       A     B     C
# count  3.0   3.0   3.0
# mean   2.0   5.0   8.0
# std    1.0   1.0   1.0
# min    1.0   4.0   7.0
# 25%    1.5   4.5   7.5
# 50%    2.0   5.0   8.0
# 75%    2.5   5.5   8.5
# max    3.0   6.0   9.0

2. sum()、mean()、max()、min() 方法

这些方法可以分别计算 DataFrame 中各个列的和、均值、最大值和最小值。

import pandas as pd

df = pd.DataFrame({
    "A": [1, 2, 3],
    "B": [4, 5, 6],
    "C": [7, 8, 9]
})

df.sum()

# 输出:
# A    6
# B   15
# C   24

df.mean()

# 输出:
# A    2.0
# B    5.0
# C    8.0

df.max()

# 输出:
# A    3
# B    6
# C    9

df.min()

# 输出:
# A    1
# B    4
# C    7

三、排序

DataFrame 的排序功能也非常灵活,它可以根据 DataFrame 中的任意一列进行排序。

1. sort_values() 方法

sort_values() 方法可以根据 DataFrame 中的任意一列进行排序。默认情况下,排序是升序的,如果要降序排序,可以使用 ascending=False 参数。

import pandas as pd

df = pd.DataFrame({
    "A": [1, 2, 3],
    "B": [4, 5, 6],
    "C": [7, 8, 9]
})

df.sort_values("A")

# 输出:
#    A  B  C
# 0  1  4  7
# 1  2  5  8
# 2  3  6  9

df.sort_values("A", ascending=False)

# 输出:
#    A  B  C
# 2  3  6  9
# 1  2  5  8
# 0  1  4  7

2. sort_index() 方法

sort_index() 方法可以根据 DataFrame 的索引进行排序。默认情况下,排序是升序的,如果要降序排序,可以使用 ascending=False 参数。

import pandas as pd

df = pd.DataFrame({
    "A": [1, 2, 3],
    "B": [4, 5, 6],
    "C": [7, 8, 9]
})

df.sort_index()

# 输出:
#    A  B  C
# 0  1  4  7
# 1  2  5  8
# 2  3  6  9

df.sort_index(ascending=False)

# 输出:
#    A  B  C
# 2  3  6  9
# 1  2  5  8
# 0  1  4  7

四、总结

DataFrame 的简单运算、统计和排序功能非常强大,可以帮助我们快速地对数据进行处理和分析。在实际应用中,我们可以根据需要灵活地使用这些功能来满足我们的数据分析需求。