Pandas DataFrame DataFrame.mean() 函式

Suraj Joshi 2023年1月30日 2020年6月17日
  1. pandas.DataFrame.mean() 語法
  2. 示例程式碼:DataFrame.mean() 方法沿列軸尋找平均值
  3. 示例程式碼: DataFrame.mean() 方法沿行軸尋找平均值
  4. 示例程式碼:DataFrame.mean() 方法忽略 NaN 值來尋找平均值
Pandas DataFrame DataFrame.mean() 函式

Python Pandas DataFrame.mean() 函式計算 DataFrame 物件在指定軸上的值的平均值。

pandas.DataFrame.mean() 語法

DataFrame.mean( axis=None, 
                skipna=None, 
                level=None, 
                numeric_only=None, 
                **kwargs)

引數

axis 沿行(axis=0)或列(axis=1)求平均數
skipna 布林型。排除 NaN 值(skipna=True)或包含 NaN 值(skipna=False)
level 如果軸為 MultiIndex,則沿特定級別計數
numeric_only 布林型。對於 numeric_only=True,只包括 floatintboolean
**kwargs 函式的附加關鍵字引數

返回值

如果沒有指定 level,則返回請求軸的平均值的 Series,否則返回平均值的 DataFrame

示例程式碼:DataFrame.mean() 方法沿列軸尋找平均值

import pandas as pd

df = pd.DataFrame({'X': [1, 2, 2, 3],
                   'Y': [4, 3, 8, 4]})
print("DataFrame:")
print(df)

means=df.mean()
print("Means of Each Column:")
print(means)

輸出:

DataFrame:
   X  Y
0  1  4
1  2  3
2  2  8
3  3  4
Means of Each Column:
X    2.00
Y    4.75
dtype: float64

計算 XY 兩列的平均數,最後返回一個包含每列平均數的 Series 物件。

在 Pandas 中,如果要找到 DataFrame 中某一列的平均數,我們只呼叫該列的 mean() 函式。

import pandas as pd

df = pd.DataFrame({'X': [1, 2, 2, 3],
                   'Y': [4, 3, 8, 4]})
print("DataFrame:")
print(df)

means=df["X"].mean()
print("Mean of Column X:")
print(means)

輸出:

DataFrame:
   X  Y
0  1  4
1  2  3
2  2  8
3  3  4
Mean of Column X:
2.0

它只給出 DataFrameX 列數值的平均值。

示例程式碼: DataFrame.mean() 方法沿行軸尋找平均值

import pandas as pd

df = pd.DataFrame({'X': [1, 2, 2, 3],
                   'Y': [4, 3, 8, 4]})
print("DataFrame:")
print(df)

means=df.mean(axis=1)
print("Mean of Rows:")
print(means)

輸出:

DataFrame:
   X  Y
0  1  4
1  2  3
2  2  8
3  3  4
Mean of Rows:
0    2.5
1    2.5
2    5.0
3    3.5
dtype: float64

它計算所有行的平均值,最後返回一個包含每行平均值的 Series 物件。

在 Pandas 中,如果要找到 DataFrame 中某一行的均值,我們只呼叫 mean() 函式來計算這一行的均值。

import pandas as pd

df = pd.DataFrame({'X': [1, 2, 2, 3],
                   'Y': [4, 3, 8, 4]})
print("DataFrame:")
print(df)

mean=df.iloc[[0]].mean(axis=1)
print("Mean of 1st Row:")
print(mean)

輸出:

DataFrame:
   X  Y
0  1  4
1  2  3
2  2  8
3  3  4
Mean of 1st Row:
0    2.5
dtype: float64

它只給出 DataFrame 中第一行數值的平均值。

我們使用 iloc 方法根據索引選擇行。

示例程式碼:DataFrame.mean() 方法忽略 NaN 值來尋找平均值

我們使用 skipna 引數的預設值,即 skipna=True 來尋找 DataFrame 沿指定軸的平均值,忽略 NaN 值。

import pandas as pd

df = pd.DataFrame({'X': [1, 2, None, 3],
                   'Y': [4, 3, None, 4]})
print("DataFrame:")
print(df)

means=df.mean(skipna=True)
print("Mean of Columns")
print(means)

輸出:

DataFrame:
     X    Y
0  1.0  4.0
1  2.0  3.0
2  NaN  NaN
3  3.0  4.0
Mean of Columns
X    2.000000
Y    3.666667
dtype: float64

如果我們設定 skipna=True,它將忽略 DataFrame 中的 NaN。它允許我們沿列軸計算 DataFrame 的平均值,忽略 NaN 值。

import pandas as pd

df = pd.DataFrame({'X': [1, 2, None, 3],
                   'Y': [4, 3, 3, 4]})
print("DataFrame:")
print(df)
means=df.mean(skipna=False)
print("Mean of Columns")
print(means)

輸出:

DataFrame:
     X  Y
0  1.0  4
1  2.0  3
2  NaN  3
3  3.0  4
Mean of Columns
X    NaN
Y    3.5
dtype: float64

在這裡,我們得到了列 X 的平均值的 NaN 值,因為列 X 中存在 NaN 值。

Author: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

相關文章 - Pandas DataFrame