计算 Pandas DataFrame 中的方差

本教程将演示如何计算 Python Pandas DataFrame 中的方差。

方差的定义

统计方差是数据离散度的度量。通过方差,我们可以知道数据中的分布。

数据点离它们的平均值越远,方差越大。方差是平方标准差。

方差分三步计算:

  • 确定每个数据点与平均值的差异程度。
  • 计算每个差值的平方。
  • 将平方差的总和除以样本中的观察数(减 1)。

我们使用 DataFrame 对象调用 var() 方法来计算方差。此方法接受四个可选参数。

语法:

#Python 3.x
variance=df.var(axis, skipna, level, ddof)
  • axis:指定沿哪个轴计算方差。值 0 表示一列,值 1 表示一行。默认值为 0(列轴)。
  • skipna:指定是否跳过空值。默认值是 true。
  • level:与多索引(分层)轴的某个级别一起计数,折叠成一个系列。字符串指定级别的名称。
  • ddof:代表自由度。N – ddof 是计算中使用的除数,其中 N 是元素的数量。
  • numeric_only:仅使用浮点、整数和布尔列。如果 None,一切都会先尝试,然后只使用数字数据,对于 Series,没有实现。

计算 Pandas DataFrame 中单列的方差

在调用 var() 方法计算方差时,我们可以通过在方括号中指定 DataFrame 的列名来计算单列的方差。

示例代码:

#Python 3.x
import pandas as pd
df=pd.DataFrame({"C1":[2,7,5,4],
                "C2":[4,1,8,2],
                "C3":[6,6,6,5],
                "C4":[3,2,8,7]})
display(df)
C1_variance = df['C1'].var()
print("Variance of C1:", C1_variance)

输出:

计算 Pandas DataFrame 中的方差

计算整个 Pandas DataFrame 的方差

我们可以使用 DataFrame 对象的内置方法来计算整个 DataFrame 的均值、标准差和方差。

在下面的代码中,我们有一个 DataFrame,我们计算了所有这三个变量并将它们存储在另一个名为 stats 的 DataFrame 中。

mean() 方法计算平均值。std() 方法计算标准差,var() 方法计算整个 DataFrame 的方差。

最后,我们展示了 statsDataFrame。

示例代码:

#Python 3.x
import pandas as pd
df=pd.DataFrame({"C1":[2,7,5,4],
                "C2":[4,1,8,2],
                "C3":[6,6,6,5],
                "C4":[3,2,8,7]})
display(df)
stats=pd.DataFrame()
stats["Mean"]=df.mean()
stats["Std_Dev"]=df.std()
stats["Variance"]=df.var()
display(stats)

输出:

计算 Pandas DataFrame 中的方差

计算 Pandas DataFrame 沿列轴的方差

为了逐列计算方差,我们将指定 axis=0 作为 var() 方法的参数。默认情况下,方差是按列计算的。

示例代码:

#Python 3.x
import pandas as pd
df=pd.DataFrame({"C1":[2,7,5,4],
                "C2":[4,1,8,2],
                "C3":[6,6,6,5],
                "C4":[3,2,8,7]})
display(df)
df.var(axis=0)

计算 Pandas DataFrame 中的方差

计算 Pandas DataFrame 沿行轴的方差

我们将指定 axis=1 作为 var() 方法的参数,以计算行值的方差。

示例代码:

#Python 3.x
import pandas as pd
df=pd.DataFrame({"C1":[2,7,5,4],
                "C2":[4,1,8,2],
                "C3":[6,6,6,5],
                "C4":[3,2,8,7]})
display(df)
df.var(axis=1)

输出:

计算 Pandas DataFrame 中的方差