Pandas 描述性统计

PandasBeginner
立即练习

介绍

欢迎来到 Pandas 描述性统计实验。描述性统计是数据分析的基础,它能提供关于样本和度量的简单摘要。借助强大的 Python 数据处理库 Pandas,计算这些统计量变得简单高效。

在本实验中,你将学习如何:

  • 计算数据集的均值(平均值)。
  • 查找中位数(中间值)。
  • 确定最小值和最大值。
  • 使用一个命令生成完整的统计摘要。
  • 计算分类列中唯一值的数量。

你将在一个示例 DataFrame 上执行这些操作,在 WebIDE 中编写和执行 Python 代码。让我们开始吧!

这是一个实验(Guided Lab),提供逐步指导来帮助你学习和实践。请仔细按照说明完成每个步骤,获得实际操作经验。根据历史数据,这是一个 初级 级别的实验,完成率为 97%。获得了学习者 100% 的好评率。

使用 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

你将看到一个格式良好的表格,其中包含 agescore 列的汇总统计信息。

... (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)的基础。请持续练习这些技能,以在你的数据分析旅程中变得更加熟练。