HOWTO · Pandas

計算 Pandas DataFrame 中的方差

本教程演示瞭如何計算 Python 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 的方差

我們可以使用 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)

輸出:

整個 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 沿行軸的方差

我們將指定 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)

輸出:

沿行軸的方差