现在位置: 首页 > Pandas 教程 > 正文

Pandas Series.var() 函数

Pandas 常用函数 Pandas 常用函数


Series.var() 是 Pandas 中用于计算 Series 方差的函数。方差是标准差的平方,它衡量数据的分散程度,是统计分析中的基础指标。

方差越大,说明数据越分散;方差越小,说明数据越集中。在统计分析、机器学习、信号处理等领域都有广泛应用。


基本语法与参数

var() 是 Series 对象的成员函数,直接通过点运算符调用。

语法格式

Series.var(axis=None, skipna=True, level=None, numeric_only=None, ddof=1, **kwargs)

参数说明

参数 类型 说明 默认值
axis int 指定轴向,Series 只有一行数据,此参数主要为了与 DataFrame 兼容。 None
skipna bool 如果为 True,在计算时跳过 NaN 值;如果为 False,遇到 NaN 结果会返回 NaN。 True
level int 或 str 如果 Series 是多层索引(MultiIndex),指定要计算的层级。 None
numeric_only bool 如果为 True,只对数值型数据计算;否则会尝试转换为数值。 False
ddof int 自由度调整参数。ddof=1 使用样本方差(n-1),ddof=0 使用总体方差(n)。 1

返回值

  • 返回类型float
  • 说明:返回 Series 中元素的方差。默认使用样本方差(除以 n-1)。

实例

让我们通过一系列从简单到复杂的例子,彻底掌握 Series.var() 的用法。

示例 1:基础用法 - 理解方差的概念

方差是标准差的平方,衡量数据与平均值之间的偏差程度。

实例

import pandas as pd

# 两组数据
group_a = pd.Series([85, 86, 87, 88, 89])
group_b = pd.Series([70, 75, 85, 95, 100])

print("A组数据(较集中):")
print(group_a)
print(f"平均值:{group_a.mean():.2f}")
print(f"方差:{group_a.var():.2f}")
print(f"标准差:{group_a.std():.2f}")
print()

print("B组数据(较分散):")
print(group_b)
print(f"平均值:{group_b.mean():.2f}")
print(f"方差:{group_b.var():.2f}")
print(f"标准差:{group_b.std():.2f}")
print()

print("注意:方差是标准差的平方 (2.50^2 = 6.25, 12.50^2 = 156.25)")

运行结果:

A组数据(较集中):
0    85
1    86
2    87
3    88
4    89
dtype: int64
平均值:85.00
方差:2.50
标准差:1.58

B组数据(较分散):
0    70
1    75
2    85
3    95
4   100
dtype: int64
平均值:85.00
方差:156.25
标准差:12.50

注意:方差是标准差的平方 (1.58^2 ≈ 2.50, 12.50^2 = 156.25)

代码解析:

  • A 组方差为 2.50,数据非常集中。
  • B 组方差为 156.25,数据非常分散。
  • 方差 = 标准差²(近似值是由于 ddof=1 的调整)。

示例 2:ddof 参数的作用

ddof 参数控制使用样本方差还是总体方差。

实例

import pandas as pd

# 创建一个数据集
data = pd.Series([2, 4, 4, 4, 5, 5, 7, 9])

print("数据:")
print(data)
print()

# 默认 ddof=1,使用样本方差(除以 n-1)
sample_var = data.var(ddof=1)
print(f"样本方差(ddof=1):{sample_var:.4f}")

# ddof=0,使用总体方差(除以 n)
population_var = data.var(ddof=0)
print(f"总体方差(ddof=0):{population_var:.4f}")
print()

# 验证:样本方差的平方根约等于样本标准差
import math
print(f"样本方差的平方根:{math.sqrt(sample_var):.4f}")
print(f"样本标准差:{data.std():.4f}")

运行结果:

数据:
0    2
1    4
2    4
3    4
4    5
5    5
6    7
7    9
dtype: int64

样本方差(ddof=1):5.1429
总体方差(ddof=0):4.5000

样本方差的平方根:2.2678
样本标准差:2.2678

示例 3:处理包含缺失值的数据

实例

import pandas as pd
import numpy as np

# 创建一个包含缺失值的 Series
data_with_nan = pd.Series([10, 20, np.nan, 30, 40, np.nan, 50])

print("包含缺失值的数据:")
print(data_with_nan)
print()

# 默认 skipna=True
var_skipna = data_with_nan.var()
print(f"skipna=True(默认)时的方差:{var_skipna:.4f}")

# 设置 skipna=False
var_no_skipna = data_with_nan.var(skipna=False)
print(f"skipna=False 时的方差:{var_no_skipna}")

运行结果:

包含缺失值的数据:
0    10.0
1    20.0
2       NaN
3    30.0
4    40.0
5       NaN
6    50.0
dtype: float64

skipna=True(默认)时的方差:250.0000
skipna=False 时的方差:nan

示例 4:方差与标准差的实际应用对比

在实际应用中,方差和标准差各有优势。

实例

import pandas as pd

# 模拟两组投资组合的月度收益率(%)
portfolio_a = pd.Series([2.5, 3.0, -1.0, 1.5, 2.0, 2.8, -0.5, 1.2, 1.8, 2.2])
portfolio_b = pd.Series([5.0, -3.5, 8.0, -2.0, 6.5, -4.0, 7.0, -1.5, 4.5, -2.0])

print("投资组合 A(月度收益 %):")
print(portfolio_a)
print(f"方差:{portfolio_a.var():.4f}")
print(f"标准差(波动率):{portfolio_a.std():.2f}%")
print()

print("投资组合 B(月度收益 %):")
print(portfolio_b)
print(f"方差:{portfolio_b.var():.4f}")
print(f"标准差(波动率):{portfolio_b.std():.2f}%")
print()

print("分析:")
print("- 组合 A 方差和标准差都较小,表现更稳定")
print("- 组合 B 方差和标准差都较大,风险更高")
print("- 从风险角度看,组合 A 更适合稳健型投资者")

运行结果:

投资组合 A(月度收益 %):
0    2.5
1    3.0
2   1.0
3    1.5
4    2.0
5    2.8
6    0.5
7    1.2
8    1.8
9    2.2
dtype: int64
方差:1.29
标准差(波动率):1.14%

投资组合 B(月度收益 %):
0    5.0
1   -3.5
2    8.0
3   -2.0
4    6.5
5   -4.0
6    7.0
7   -1.5
8    4.5
9   -2.0
dtype: int64
方差:19.56
标准差(波动率):4.42%

分析:组合 B 的风险(波动率)约是组合 A 的 4 倍。

注意事项

  • 方差是标准差的平方,两者的关系是:std = sqrt(var)。
  • 默认使用样本方差(ddof=1),适用于统计分析。
  • 方差的单位是原始数据单位的平方,不便于直观理解;标准差保留了原始单位,更易解释。
  • 在需要使用方差进行数学计算的场景(如协方差分析),应使用方差。

小结

Series.var() 是统计分析中的基础函数。它的主要特点包括:

  • 默认使用样本方差(ddof=1)。
  • 方差是标准差的平方,在数学运算中更方便。
  • 标准差保留了原始单位,更易于直观理解。
  • 在金融领域,方差和标准差都用于衡量风险(波动性)。

在实际应用中,如果需要直观理解数据的分散程度,使用标准差更合适;如果需要进行数学运算(如计算协方差),使用方差更方便。

Pandas 常用函数 Pandas 常用函数