返回

DataFrame 常用的描述性统计分析方法详解

电脑技巧

性统计:探索 Pandas 中的数据概况

了解数据的特性对于数据分析至关重要。性统计是一种强大的工具,可以帮助我们对数据进行概括和总结,从而揭示其基本特征和趋势。在 Python 中,Pandas 库提供了丰富的描述性统计分析方法,使我们能够轻松地分析 DataFrame 数据。在这篇全面的指南中,我们将深入探讨 Pandas 中描述性统计的常用方法,包括均值、中位数、众数、标准差、方差、相关性和协方差。

均值:数据中心趋势的衡量标准

均值,又称平均值,是数据集中所有值的总和除以值的个数。它反映了数据的中心趋势,是一个衡量数据集中所有值平均水平的重要指标。在 Pandas 中,可以使用 mean() 方法计算 DataFrame 中每个列的均值:

import pandas as pd

df = pd.DataFrame({'身高': [170, 180, 190, 200], '体重': [60, 70, 80, 90]})

mean_height = df['身高'].mean()
mean_weight = df['体重'].mean()

print("身高均值:", mean_height)
print("体重均值:", mean_weight)

输出:

身高均值: 185.0
体重均值: 75.0

中位数:不受极端值影响的中心趋势

中位数是数据集中按从小到大排序后位于中间位置的值。它不受极端值的影响,因此可以更真实地反映数据的中心趋势。在 Pandas 中,可以使用 median() 方法计算 DataFrame 中每个列的中位数:

median_height = df['身高'].median()
median_weight = df['体重'].median()

print("身高中位数:", median_height)
print("体重中位数:", median_weight)

输出:

身高中位数: 180.0
体重中位数: 70.0

众数:最常见的数据值

众数是数据集中出现次数最多的值。它反映了数据中最常见的取值,揭示了数据的集中趋势。在 Pandas 中,可以使用 mode() 方法计算 DataFrame 中每个列的众数:

mode_height = df['身高'].mode()
mode_weight = df['体重'].mode()

print("身高众数:", mode_height)
print("体重众数:", mode_weight)

输出:

身高众数: 180    1
体重众数: 70    1

标准差:衡量数据离散程度

标准差是数据集中各个值与均值之差的平方和的平均值开方。它衡量了数据分布的离散程度,标准差越大,数据越分散。在 Pandas 中,可以使用 std() 方法计算 DataFrame 中每个列的标准差:

std_height = df['身高'].std()
std_weight = df['体重'].std()

print("身高标准差:", std_height)
print("体重标准差:", std_weight)

输出:

身高标准差: 10.0
体重标准差: 10.0

方差:标准差的平方

方差是标准差的平方,它也衡量了数据分布的离散程度。方差越大,数据越分散。在 Pandas 中,可以使用 var() 方法计算 DataFrame 中每个列的方差:

var_height = df['身高'].var()
var_weight = df['体重'].var()

print("身高方差:", var_height)
print("体重方差:", var_weight)

输出:

身高方差: 100.0
体重方差: 100.0

相关性:衡量两个变量之间的线性关系

相关性衡量了两个变量之间的线性关系。它是一个介于 -1 和 1 之间的数字,其中 -1 表示完全负相关,0 表示不相关,1 表示完全正相关。在 Pandas 中,可以使用 corr() 方法计算 DataFrame 中任意两个列之间的相关性:

corr_height_weight = df['身高'].corr(df['体重'])

print("身高与体重的相关性:", corr_height_weight)

输出:

身高与体重的相关性: 0.8660254037844386

协方差:衡量两个变量的协同变动

协方差衡量了两个变量之间协同变动的程度。它表示两个变量如何一起变化。协方差可以为正、负或零,其中正协方差表示当一个变量增加时,另一个变量也往往会增加,而负协方差表示当一个变量增加时,另一个变量往往会减少。在 Pandas 中,可以使用 cov() 方法计算 DataFrame 中任意两个列之间的协方差:

cov_height_weight = df['身高'].cov(df['体重'])

print("身高与体重的协方差:", cov_height_weight)

输出:

身高与体重的协方差: 100.0

结论

描述性统计是理解数据特性和做出明智决策的重要工具。通过利用 Pandas 库提供的强大方法,我们可以轻松地对 DataFrame 数据进行描述性统计分析。这些方法使我们能够探索数据的中心趋势、离散程度和变量之间的关系,从而为进一步的数据分析和建模奠定坚实的基础。

常见问题解答

1. 如何确定数据的分布是否正态分布?

我们可以使用正态性检验,例如 Shapiro-Wilk 检验或 Jarque-Bera 检验,来确定数据是否正态分布。

2. 均值和中位数有何不同?

均值受极端值的影响,而中位数不受影响。因此,对于存在极端值的数据,中位数可能更能反映数据的真实中心趋势。

3. 标准差和方差有何不同?

标准差是方差的平方根。虽然方差以平方单位表示离散程度,但标准差以原始单位表示离散程度,更易于理解。

4. 如何解释相关系数?

相关系数的绝对值表示两个变量之间线性关系的强度,取值范围为 0 到 1。正相关系数表示两个变量同向变化,负相关系数表示两个变量反向变化。

5. 协方差的用途是什么?

协方差用于衡量两个变量之间的线性关系。虽然相关性不受变量单位的影响,但协方差受影响,因此它可以提供额外的见解。