Pandas 进阶:用简单运算、统计和排序理解 DataFrame
2023-09-24 14:09:24
在前面的章节中,我们讨论了 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 的简单运算、统计和排序功能非常强大,可以帮助我们快速地对数据进行处理和分析。在实际应用中,我们可以根据需要灵活地使用这些功能来满足我们的数据分析需求。