介绍
欢迎来到 Pandas 描述性统计实验。描述性统计是数据分析的基础,它能提供关于样本和度量的简单摘要。借助强大的 Python 数据处理库 Pandas,计算这些统计量变得简单高效。
在本实验中,你将学习如何:
- 计算数据集的均值(平均值)。
- 查找中位数(中间值)。
- 确定最小值和最大值。
- 使用一个命令生成完整的统计摘要。
- 计算分类列中唯一值的数量。
你将在一个示例 DataFrame 上执行这些操作,在 WebIDE 中编写和执行 Python 代码。让我们开始吧!
欢迎来到 Pandas 描述性统计实验。描述性统计是数据分析的基础,它能提供关于样本和度量的简单摘要。借助强大的 Python 数据处理库 Pandas,计算这些统计量变得简单高效。
在本实验中,你将学习如何:
你将在一个示例 DataFrame 上执行这些操作,在 WebIDE 中编写和执行 Python 代码。让我们开始吧!
在本步骤中,你将学习如何计算 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
在本步骤中,你将计算数值列的中位数。中位数是指将数据集按升序排序后位于中间位置的值。当数据包含异常值时,中位数通常是比均值更好的集中趋势度量。
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() 方法。这个方法可以为 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() 方法返回一个包含唯一值计数的 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)的基础。请持续练习这些技能,以在你的数据分析旅程中变得更加熟练。