在Pandas中如何计算均值并用于填充空值?
Pandas 均值填充空值逻辑说明
示例代码
import pandas as pd import numpy as np ser = pd.Series([1,2,np.nan,4,np.nan]) ser.fillna(ser.mean())
计算逻辑
pd.Series.mean()方法默认携带skipna=True参数,会自动忽略所有np.nan类型的空值,仅用有效非空数值计算算术平均值pd.Series.fillna(填充值)方法会遍历序列,将所有np.nan位置统一替换为传入的填充值,原有非空值保持不变
实现步骤
- 计算序列均值:原始序列共5个元素,其中2个为
np.nan空值,有效非空值为1、2、4三个,求和得1+2+4=7,均值计算为7/3 ≈ 2.333333 - 执行空值填充:将序列中2个空值位置全部替换为上述计算得到的均值
结果由来
最终运行输出结果如下:
1.000000
2.000000
2.333333
4.000000
2.333333
原序列中第1、2、4位的非空值保持原值不变,第3、5位的空值被替换为均值≈2.33,因此得到上述输出。
内容的提问来源于stack exchange,提问作者docXt
相关产品推荐
相关产品推荐

