介绍
欢迎来到 Pandas 描述性统计实验。描述性统计是数据分析的基础,它能提供关于样本和度量的简单摘要。借助强大的 Python 数据处理库 Pandas,计算这些统计量变得简单高效。
在本实验中,你将学习如何:
- 计算数据集的均值(平均值)。
- 查找中位数(中间值)。
- 确定最小值和最大值。
- 使用一个命令生成完整的统计摘要。
- 计算分类列中唯一值的数量。
你将在一个示例 DataFrame 上执行这些操作,在 WebIDE 中编写和执行 Python 代码。让我们开始吧!
使用 mean 方法计算均值
在本步骤中,你将学习如何计算 Pandas DataFrame 中数值列的均值(平均值)。均值是所有数值的总和除以数值的个数,它是最常见的集中趋势度量之一。
Pandas 提供了 .mean() 方法,可以对 Series(DataFrame 的一列)调用该方法来计算其均值。
首先,从 WebIDE 左侧的文件浏览器中打开 main.py 文件。你将看到创建我们示例 DataFrame 的初始代码。
将以下代码添加到 main.py 文件的末尾,以计算 score 列的均值并打印出来。
## Calculate the mean of the 'score' column
score_mean = df['score'].mean()
print(f"Mean Score: {score_mean}")
现在,让我们运行脚本。在 WebIDE 中打开一个终端(Terminal -> New Terminal),然后执行以下命令:
python3 main.py
你应该会看到原始 DataFrame、一个分隔符以及计算出的平均分数。
Original DataFrame:
name age score grade
0 Alice 24 85 B
1 Bob 27 90 A
2 Charlie 22 78 C
3 David 32 95 A
4 Eve 29 88 B
==============================
Mean Score: 87.2
使用 median 方法计算中位数
在本步骤中,你将计算数值列的中位数。中位数是指将数据集按升序排序后位于中间位置的值。当数据包含异常值时,中位数通常是比均值更好的集中趋势度量。
Pandas 通过 .median() 方法轻松实现了这一点。
继续编辑 main.py 文件。将以下行添加到脚本末尾,以计算并打印 score 列的中位数。
## Calculate the median of the 'score' column
score_median = df['score'].median()
print(f"Median Score: {score_median}")
保存文件,然后从终端再次运行脚本:
python3 main.py
输出现在将同时包含均值和中位数。
Original DataFrame:
name age score grade
0 Alice 24 85 B
1 Bob 27 90 A
2 Charlie 22 78 C
3 David 32 95 A
4 Eve 29 88 B
==============================
Mean Score: 87.2
Median Score: 88.0
查找最小值和最大值
在本步骤中,你将查找列中的最小值和最大值。这些统计数据对于理解数据的范围和分布非常有用。Pandas 为此提供了 .min() 和 .max() 方法。
让我们来查找数据集中最低和最高的分数。将以下代码添加到你的 main.py 脚本末尾。
## Find the minimum and maximum scores
score_min = df['score'].min()
score_max = df['score'].max()
print(f"Minimum Score: {score_min}")
print(f"Maximum Score: {score_max}")
保存文件,并在终端中执行它:
python3 main.py
你的输出现在将显示平均分、中位数、最低分和最高分。
Original DataFrame:
name age score grade
0 Alice 24 85 B
1 Bob 27 90 A
2 Charlie 22 78 C
3 David 32 95 A
4 Eve 29 88 B
==============================
Mean Score: 87.2
Median Score: 88.0
Minimum Score: 78
Maximum Score: 95
使用 describe 生成摘要统计信息
在本步骤中,你将使用强大的 .describe() 方法。这个方法可以为 DataFrame 中的所有数值列生成全面的描述性统计信息摘要,包括计数(count)、均值(mean)、标准差(standard deviation)、最小值(min)、最大值(max)以及四分位数(quartile)值。
这极大地节省了时间,可以快速概览你的数据。将以下代码添加到 main.py 的末尾。
## Generate a summary of descriptive statistics
summary_stats = df.describe()
print("Descriptive Statistics Summary:")
print(summary_stats)
保存文件并运行脚本:
python3 main.py
你将看到一个格式良好的表格,其中包含 age 和 score 列的汇总统计信息。
... (previous output) ...
Descriptive Statistics Summary:
age score
count 5.000000 5.000000
mean 26.800000 87.200000
std 4.024922 6.379655
min 22.000000 78.000000
25% 24.000000 85.000000
50% 27.000000 88.000000
75% 29.000000 90.000000
max 32.000000 95.000000
使用 value_counts 计算唯一值
在本步骤中,你将学习如何计算列中唯一值的出现次数,这对于分类数据尤其有用。.value_counts() 方法返回一个包含唯一值计数的 Series。
让我们来计算一下每个分数等级有多少学生获得。将以下代码添加到 main.py 的末尾。
## Count the occurrences of each grade
grade_counts = df['grade'].value_counts()
print("Grade Counts:")
print(grade_counts)
保存文件并最后一次运行脚本。
python3 main.py
最终输出将包括每个唯一分数等级的计数。
... (previous output) ...
Grade Counts:
grade
B 2
A 2
C 1
Name: count, dtype: int64
这表明分数等级 'A' 和 'B' 各出现两次,分数等级 'C' 出现一次。
总结
恭喜你完成了本次实验!你已成功学会了如何使用 Pandas 库执行基础的描述性统计分析。
在本次实验中,你练习使用了几个关键的 Pandas 方法:
.mean()用于计算平均值。.median()用于查找中心值。.min()和.max()用于确定数据的范围。.describe()用于获取快速而全面的统计摘要。.value_counts()用于计算分类列中唯一值的数量。
这些函数是任何数据分析师或数据科学家的必备工具,也是探索性数据分析(EDA)的基础。请持续练习这些技能,以在你的数据分析旅程中变得更加熟练。



