关于Pandas版本: 本文基于 pandas2.1.2 编写。
关于本文内容更新: 随着pandas的stable版本更迭,本文持续更新,不断完善补充。
Pandas稳定版更新及变动内容整合专题: Pandas稳定版更新及变动迭持续更新。
Pandas API参考所有内容目录
本节目录
- Pandas.DataFrame.mean()
- 语法:
- 返回值:
- 参数说明:
- axis 指定计算方向(行或列)
- skipna 忽略缺失值
- numeric_only 仅计算全是数字类型的平均值
- **kwargs 关键字参数
- 示例:
- 例1:如果是 `Series` 始终保持 `axis=0`,即计算整列的平均值。
- 例2: 当 `axis=None` 时, `DataFrame` 的所有值的数据类型必须是数值类型的,否则会报错!
- 例3: 求 `DataFrame` 每列的平均值
- 例4: 求 `DataFrame` 每行的平均值
- 例5:如果整行或整列,都是缺失值,那么平均值结果也是缺失值。
- 例6:`numeric_only=True` 只对数值类型的数据求平均值
Pandas.DataFrame.mean()
DataFrame.mean
方法用于返回指定轴向的平均值。
语法:
DataFrame.mean(axis=0, skipna=True, numeric_only=False, **kwargs)
返回值:
-
Series or scalar
- 输入的数据是单行或单列,则返回
scalar
; - 输入的数据是多行或多列,则返回
Series
。
- 输入的数据是单行或单列,则返回
参数说明:
axis 指定计算方向(行或列)
-
axis : {0 or ‘index’, 1 or ‘columns’}, default 0
axis
参数,用于指定计算方向,即按行计算或按列计算平均值:- 如果是
Series
此参数无效,将始终保持axis=0
,即计算整列的平均值。例1 - 如果是
DataFrame
默认为axis=0
即计算每一列的平均值。并有以下参值可选:- 0 or ‘index’: 计算每列的平均值。 例3
- 1 or ‘columns’: 计算每行的平均值。例4
- None: 计算所有值的平均值,这相当于把
DataFrame
的所有值展平后求平均值:df.mean(axis=None) 等效于 mean(df.values.raravel())
-
⚠️ 注意 :
字符串类型的值,不支持平均值运算。- 当
axis=None
时,DataFrame
所有值的数据类型必须数值类型的,否则会报错!TypeError
例2
- 当
✅ 新增于 Pandas 2.0.0 :
axis
参数,新增于Pandas 2.0.0 版本。 - 如果是
skipna 忽略缺失值
-
skipna : bool, default False >
skipna
参数,用于指定求平均值的时候是否忽略缺失值:- False: 不忽略,缺失值 在求平均值的时候,会被解析为浮点数
float
。当字符串和缺失值混合时,会报错!TypeError
。 - True: 忽略缺失值。
⚠️ 注意 :
-
缺失值 在求平均值的时候,会被解析为浮点数
float
。 -
如果整行或整列,都是缺失值,那么平均值结果也是缺失值。 例5
- False: 不忽略,缺失值 在求平均值的时候,会被解析为浮点数
numeric_only 仅计算全是数字类型的平均值
-
numeric_only : bool, default False
numeric_only
参数,用于控制是否排除非数值类型的值:- False: 不排除,计算同行或同列,所有数据的平均值。但是遇到数据类型不同的问题时,会报错。
- True: 只计算数字类型数据的平均值,同行、同列的非数值类型数据会被排除。例6
**kwargs 关键字参数
- kwargs
kwargs
参数,是为了保持与Numpy
的兼容性而保留的参数,一般不需要传递任何内容。
示例:
测试文件下载:
本文所涉及的测试文件,如有需要,可在文章顶部的绑定资源处下载。
若发现文件无法下载,应该是资源包有内容更新,正在审核,请稍后再试。或站内私信作者索要。
例1:如果是 Series
始终保持 axis=0
,即计算整列的平均值。
import numpy as np
import pandas as pd
s = pd.Series([24.0, np.nan, 21.0, 33, 26], name="age")
s.mean()
26.0
例2: 当 axis=None
时, DataFrame
的所有值的数据类型必须是数值类型的,否则会报错!
import numpy as np
import pandas as pd
df = pd.DataFrame(
{
"Person": ["John", "Myla", "Lewis", "John", "Myla"],
"Age": [24.0, 2, 21.0, 33, 26],
"Single": [False, True, True, True, False],
}
)
df.mean(axis=None)
例3: 求 DataFrame
每列的平均值
import numpy as np
import pandas as pd
df = pd.DataFrame(
{
"Person": ["John", "Myla", "Lewis", "John", "Myla"],
"Age": [24.0, 2, 21.0, 33, 26],
"Single": [False, True, True, True, False],
}
)
# 应返回的是Series,为了方便观察,使用.to_frame(),显式为表格形式
df.mean().to_frame()
0 | |
---|---|
Person | John |
Age | 2.0 |
Single | False |
例4: 求 DataFrame
每行的平均值
import numpy as np
import pandas as pd
df = pd.DataFrame(
{"A": [28, "Lewis", True], "B": [24.0, "John", False], "C": [30, "Myla", True]}
)
# 应返回的是Series,为了方便观察,使用.to_frame(),显式为表格形式
df.mean(axis=1).to_frame()
0 | |
---|---|
0 | 24.0 |
1 | John |
2 | False |
例5:如果整行或整列,都是缺失值,那么平均值结果也是缺失值。
import numpy as np
import pandas as pd
df = pd.DataFrame(
{"A": [np.nan, np.nan]},
)
# 应返回的是Series,为了方便观察,使用.to_frame(),显式为表格形式
df.mean(axis=0).to_frame()
0 | |
---|---|
A | NaN |
例6:numeric_only=True
只对数值类型的数据求平均值
df = pd.DataFrame({"A": [0.5], "B": ["a"], "C": [True]})
# 应返回的是Series,为了方便观察,使用.to_frame(),显式为表格形式
df.mean(axis=1, numeric_only=True).to_frame()
0 | |
---|---|
0 | 0.5 |